试图了解如何初始化类中的变量。示例类:
class Emp:
company = "ABC"
我希望属性公司在Emp
的所有实例对象之间共享,我们将能够使用Emp.company
来访问它
现在,如果我使用self在Emp类中创建另一个变量,并且具有相同的名称(公司),我希望它与“类级别”公司分开。
我第一次尝试访问self.company
时,我期望一个空值(因为未设置任何内容),但是该值被解析为与Emp.company
中的值相同,即使以后的测试表明:这些是单独的值。
示例:在init方法中,我们尝试打印self.company并打印Emp.company的值,如果它在类级别存在,这是否提供了默认值,可以在运行时完成?我怀疑这与作用域无关,因为我曾试图从类中删除company并将其放在模块级别,但脚本停止编译。
class Emp:
company = "CLASS"
def __init__ (self):
print Emp.company # prints CLASS
print self.company # prints CLASS
self.company = "SELF"
def change(self, com):
print Emp.company # prints CLASS, so that self.company = "SELF" had not effects
Emp.company = com
print Emp.company # prints CLASS2
print self.company # prints SELF, clearly the class level and self level variables are different
def show(self):
print self.company
print Emp.company
t = Emp()
t.change("CLASS2")
print "another instance"
t1 = Emp()
print "showing now....."
t1.show() # call to show that t1 has the same value as Emp.Company