如何在 Python 中引用 class 下声明的变量?
How do I reference the variable declared under a class in Python?
我对 Python 比较陌生,我正在使用 Python 2.7.x
我对 Python 中的名称空间有疑问:
class Team():
x = 2
def p(self):
print x
a = Team()
a.p()
当我 运行 代码时,它显示 global x is not defined
。 x
不应该属于 Team
对象吗?我的目标是创建一个 Team
class,其中 x
的默认值为 2。
在 Java 中会是这样的:
class Team()
{
int x = 2;
}
a = new Team();
如果您想要实例属性和默认值 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
之间的区别
new vs old style classes
如果你想把 x 作为 class 变量,试试这个方法:
class Team(object):
x = 2
def __init__(self):
pass
print Team.x
Team.x = 3
print Team.x
不需要实例化获取值,可以随意更改。
如果你想将 num 作为实例 属性,你必须使用 self(就像 Java 中的这样):
class Team(object):
def __init__(self, num):
self.num = num
def get_num(self):
return self.num
def set_num(self, change_num):
self.num = change_num
t1 = Team(2)
print t1.get_num()
t1.set_num(3)
print t1.get_num()
我对 Python 比较陌生,我正在使用 Python 2.7.x
我对 Python 中的名称空间有疑问:
class Team():
x = 2
def p(self):
print x
a = Team()
a.p()
当我 运行 代码时,它显示 global x is not defined
。 x
不应该属于 Team
对象吗?我的目标是创建一个 Team
class,其中 x
的默认值为 2。
在 Java 中会是这样的:
class Team()
{
int x = 2;
}
a = new Team();
如果您想要实例属性和默认值 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
之间的区别
new vs old style classes
如果你想把 x 作为 class 变量,试试这个方法:
class Team(object):
x = 2
def __init__(self):
pass
print Team.x
Team.x = 3
print Team.x
不需要实例化获取值,可以随意更改。
如果你想将 num 作为实例 属性,你必须使用 self(就像 Java 中的这样):
class Team(object):
def __init__(self, num):
self.num = num
def get_num(self):
return self.num
def set_num(self, change_num):
self.num = change_num
t1 = Team(2)
print t1.get_num()
t1.set_num(3)
print t1.get_num()