ace*_*ner 1 python namespaces python-2.x
我是Python的新手,我使用的是Python 2.7.x.
我对Python中的命名空间有疑问:
class Team():
x = 2
def p(self):
print x
a = Team()
a.p()
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,它说global x is not defined.不应该x属于Team对象吗?我的目标是创建一个Team类,其中x有2默认值.
在Java中它将是这样的:
class Team()
{
int x = 2;
}
a = new Team();
Run Code Online (Sandbox Code Playgroud)
如果要实例属性且默认值为2:
class Team(object): # use object for new style classes
def __init__(self, x=2):
self.x = x # use self to refer to the instance
def p(self):
print self.x # self.x
a = Team()
a.p()
2
b = Team(4) # give b a different value for x
b.p()
4
Run Code Online (Sandbox Code Playgroud)
类与实例属性之间的区别