最后一句话什么意思没弄明白
因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
这个无论是
类名.方法 --①
实例.方法 --②
结果都一样,这里说的类方法无法获取任何实例变量,只能获得类的引用是什么意思?
是--①是正确的
然后--②是错的用法?
求解答不太明白
因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
这个无论是
类名.方法 --①
实例.方法 --②
结果都一样,这里说的类方法无法获取任何实例变量,只能获得类的引用是什么意思?
是--①是正确的
然后--②是错的用法?
求解答不太明白
2019-08-17
你可以这样理解,类方法和类属性是类拥有的东西,实例方法和实例属性是实例所拥有的东西,类会将自己的东西无私的共享给所有的实例,所以实例不仅可以调用自己的东西,而且还可以调用类拥有的东西。但是实例却很自私,自己的东西只能自己用,不对自己以外的任何人开放共享。例如:
#coding=utf-8
class Person(object):
count = 0 # declare a class variable
def __init__(self,name):
self.name = name # declare a instance variable
@classmethod
def get_classFunction(cls): # define a class function
return 'A class function'
def get_instanceFunction(self): # define a instance function
return 'A instance function'
p1 = Person('Jason')
print p1.count # 实例可以调用类的变量
print Person.count # 类可以调用类的变量
print p1.name # 实例可以调用实例的变量
print Person.name # 类无法调用实例的变量
print p1.get_instanceFunction # 实例可以调用实例的方法
print Person.get_instanceFunction # 类无法调用实例的方法
print p1.get_classFunction # 实例可以调用类的方法
print Person.get_classFunction # 类可以调用类的方法举报