标签:自己的 对象 第一个 绑定 amp 抛出异常 地址 分析 函数
创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性
而类的良好总属性:数据属性和函数属性
其中类的数据属性是共享给所有对象
print(id(g1.camp)) #引用的地址是一样的
print(id(Garen.camp))
输出结果为:
364617767096
364617767096
其中类的函数属性是绑定到所有对象
print(id(g1.attack)) #两个引用地址不一样
print(id(Garen.attack))
输出结果为:
1009949719304
1009951072464
分析:g1.attack就是在执行Garen.attack的功能,python的class机制会将Garen的函数属性attack绑定给g1,g 1相当于拿到了一个指针,指向Garen类的attack功能。除此之外,g1.attack()会将g1传给attack的第一个参数。
创建一个对象(实例)就会创建一个对象(实例)的名称空间,存放对象(实例)的名字,称为对象(实例)的属性
在obj.name会先从obj自己的名称空间里找name,找不到则去类中找,类中找不到就找父类。最后找不到就抛出异常。
标签:自己的 对象 第一个 绑定 amp 抛出异常 地址 分析 函数
原文地址:http://www.cnblogs.com/asaka/p/6758383.html