[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__方法在创建新对象时调用
句点表示法
所有的对象属性(包括变量和方法)都可以通过句点符号访问。
实例变量
实例变量是描述对象状态的数据属性。对象的方法可以改变这些变量的值,也可以赋值新的变量。
方法调用
属性
动态实例变量
一个对象可以随时创建新的实例变量。
类变量
类变量是定义在类中、方法外的变量,所有实例共享。实例优先考虑自身是否有该变量定义,没有则往上(即类变量)查找。