- 主题:[求助]一个关于类的简单问题
两段代码:
class geese(object):
name='alex'
def __init__(self):
print(self.name)
a=geese()
b=geese()
a.name='bob'
print(a.name)
print(b.name)
------------------------------------------------------------------------------------
class geese(object):
def __init__(self):
self.name='alex'
print(self.name)
a=geese()
b=geese()
a.name='bob'
print(a.name)
print(b.name)
为什么两段代码运行的结果是一样的,类属性和实例属性修改后都不影响其他类实例中的值吗?
--
FROM 58.45.38.*
第一个类你用
a=geese()
b=geese()
geese.name='bob'
print(a.name)
print(b.name)
试试
--
FROM 119.248.227.*
class geese(object):
name='alex'
def __init__(self):
self.name = 555
print('类变量=', self.__class__.name)
print('实例变量=', self.name)
a=geese()
geese.name='bob'
b=geese()
再看这个例子
你就明白了。是py垃圾,让人误解
--
FROM 119.248.227.*
简单解释就是类属性要通过类对象来引用,实例属性要通过实例对象来引用
--
FROM 60.191.227.*
连基本的官方language reference都不看
--
FROM 27.187.130.*
小白哪看得懂,都看得懂那水木就不要设python版了
【 在 pgw 的大作中提到: 】
: 连基本的官方language reference都不看
--
FROM 183.214.236.*
py里命名空间反直觉
【 在 ToSimplicity 的大作中提到: 】
--
FROM 119.248.227.*