这里实例方法当做函数调用 为什么报错
本帖最后由 jackz007 于 2024-4-18 22:21 编辑class Person :
age = 10
@classmethod # 必须把需要调用的方法声明为类方法
def eat(cls , abc) : # 类方法传入的第一个参数不再是类实例句柄 self,而是类句柄 cls
print('在吃饭' , abc)
print(cls . age) # 通过类句柄 cls 访问类属性 age
Person . eat(456) # 直接调用类方法 jackz007 发表于 2024-4-18 22:17
记得 实例属性不是可以继承类属性的吗,比如
class person:
age = 5
p=person()
print(p.age)
这样可以调用类属性的,为什么这里就不行了 本帖最后由 jackz007 于 2024-4-18 22:27 编辑
lc88824 发表于 2024-4-18 22:21
记得 实例属性不是可以继承类属性的吗,比如
class person:
age = 5
可以呀,试试下面的代码呢
class Person :
age = 10
@classmethod # 必须把需要调用的方法声明为类方法
def eat(cls , abc) : # 类方法传入的第一个参数不再是 self,而是类句柄 cls
print('在吃饭' , abc)
print(cls . age) # 属性 age 属于 Person 类,
p = Person()
p . eat(456)
print(p . age) jackz007 发表于 2024-4-18 22:24
print(cls . age) # 属性 age 属于 Person 类,
print(self.age)
这里person.eat传参数123 作为实例123,就类似123.age 这里不能引用person里面的age吗 本帖最后由 jackz007 于 2024-4-18 22:37 编辑
lc88824 发表于 2024-4-18 22:27
print(cls . age) # 属性 age 属于 Person 类,
print(self.age)
这里person.eat传参数1 ...
self 只能出现在类定义的内部,用来代表访问属性、方法的对象本身,不可以出现在类定义以外的任何地方,此外,尽管有时候某个对象的 self 可能是 123,但是,并不意味着可以用 123 来代替这个 self,因为,每一个对象都有自己不同的 self,道理很简单,因为,这代表它们是不同的个体。
页:
[1]