[2021 Spring] CS61A 学习笔记 lecture16 Objects + Classes

lecture16:对象和类(终于到面向对象了!!!)
主要内容:类的基本概念、类的定义、类的属性和方法(也是各类教程都有的内容)

基本概念

  • 类是定义新数据类型的模板。
  • 类的实例称为对象。
  • 每个对象都有称为实例变量的数据属性,用于描述其状态。
  • 每个对象还具有称为方法的函数属性。

Python 包含用于创建类和对象的特殊语法。一个类可以:

  • 设置实例变量的初始值。
  • 定义特定于对象的方法,通常用于更改或报告实例变量的值。

类的定义代码:

# Define a new type of data
class Product:
    # Set the initial values
    def __init__ (self, name, price, nutrition_info ):
            self._name = name
            self._price = price
            self._nutrition_info = nutrition_info
            self._inventory = 0

    # Define methods
    def increase_inventory (self, amount):
            self._inventory += amount

    def reduce_inventory(self, amount):
            self._inventory -= amount

    def get_label(self):
        return "Foxolate Shop: " + self._name

    def get_inventory_report(self):
        if self._inventory == 0:
            return "There are no bars!"
        return f"There are {self._inventory} bars."

pina_bar = Product("Piña Chocolotta", 7.99, ["200 calories", "24 g sugar"])
pina_bar.increase_inventory(2)

类的定义

类的实例化(构造对象)

__init__方法在创建新对象时调用

句点表示法

所有的对象属性(包括变量和方法)都可以通过句点符号访问。

实例变量

实例变量是描述对象状态的数据属性。对象的方法可以改变这些变量的值,也可以赋值新的变量。

方法调用

属性

动态实例变量

一个对象可以随时创建新的实例变量。

类变量

类变量是定义在类中、方法外的变量,所有实例共享。实例优先考虑自身是否有该变量定义,没有则往上(即类变量)查找。

属性公开

"私有"属性

posted @ 2021-07-03 15:38  ikventure  阅读(235)  评论(0编辑  收藏  举报