python 严格要求方法有实例才能够被调用,这种限制其实就是Python的绑定概念。
class C:
def printBB():
print ‘BB’
>> C.printBB()
BB
>> c = C()
>> c.printBB()
报错,因为printBB方法定义的时候没有实例,无法接受c这个实例,即 printBB() 参数中没有self,因加上self来接受c这个实例对象才能被调用。
class CC:
def setXY(self, x, y):
self.x = x
self.y = y
def printXY(self):
print self.x, self.y
>> dd = CC()
>> dd.__dict__ ########### 双横线包围的dict, __dict__, 是用来查看当前对象的属性和方法 返回的是字典类型
{}
>>CC.__dict__ ##
{...........} ### 键值对 但是CC当前没有属性,因为定义的时候没有定义属性
>> dd.setXY(4,5) ###### 相当于 dd.setXY(dd, 4, 5) 而没改变CC
>>dd.__dict__
{ 'x':4, 'y':5}
现在讨论一下,将CC删去的话,dd还能否调用printXY
>> del CC
>> ee = CC()
报错,找不到CC了
>> dd.printXY()
4, 5 ############# 类中的属性方法是静态变量,虽然类对象被删除了,但是类申明的变量还是存在内存中, 直到程序退出的时候才会 ### 被释放。