如何在Python中引用在类下声明的变量?

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)

Pad*_*ham 5

如果要实例属性且默认值为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)

类与实例属性之间的区别

新旧风格课程