当前位置:首页 >> 脚本专栏

如何理解python对象

类(class)抽象的概念,比如说人类、鸟类、水果、是一个总的称呼,没有具体到某个物体;

对象(object,指具体实例,instance);

给对象增加一个实例变量

# 增加一个skills实例变量
p.skills = ['programming','writing']
print(p.skills)
#删除p对象的name实例变量,而不是删除类中变量,新建一个对象,name实例变量还是构造函数默认的。
del p.name
# print(p.name) 会报错

Python 允许通过对象访问类变量 ,但如果程序通过对象尝试对类变量赋值,此时性质就变了一Python 是动态语言,赋值语句往往意味着定义新变量。因此,如果程序通过对象对类变量赋值,其实不是对“类变量赋值”,而是定义新的实例变量 。例如如下程序 。

class Inventory:
  #定义两个变量
  quantity = 2000
  item = '鼠标'
  #定义实例方法
  def change(self,item,quantity):
    self.item = item
    self.quantity = quantity
#创建Inventory对象
iv = Inventory()
iv.change('显示器',500)
#访问iv的item和quantity实例变量
print(iv.item) #显示器
print(iv.quantity) #500
#访问Inventotry的item和quantity类变量
print(Inventory.item) #鼠标
print(Inventory.quantity) #2000

观点扩展:

Python的面向对象,可以简单理解为你处理的东西都是“对象”。变量是指向一个对象的,变量名称是一个对象,相关的是namespace这个概念。类代表一类东西,是个对象。class下面的instance就是类的具体表现,相当于具备某一特征的个体,这些都是对象。