class testing():
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def house(self):
d = self.a+self.b+self.c
print d
module="hello"
p = testing(1, 2, 3)
p.house()
如何从module
课程中访问testing
变量?我知道我可以通过执行以下操作将它作为参数添加到类构造函数中:
p=testing(1,2,3,module)
但我不想这样做,除非我必须这样做。还有哪些其他方法可以从module
类中访问testing
变量?
答案 0 :(得分:6)
你只是引用它;您不需要任何特殊的全球许可来访问它。这不是最好的方法,但由于您还没有描述您的应用程序和模块化要求,我们现在可以做的就是解决您当前的问题。
顺便说一下,你的a,b,c引用是不正确的。见下文。
class testing():
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
self.greeting = module
def house(self):
d = self.a + self.b + self.c
print d
print self.greeting
module="hello"
p = testing(1, 2, 3)
p.house()
输出:
6
hello
答案 1 :(得分:1)
您可以使用globals()
。但我不确定这是不是一个好主意。
class testing():
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def house(self):
print(globals()['module'])
d = self.a + self.b + self.c
print(d)
module = 'here'
t = testing(1, 2, 3)
t.house()
输出:
# here
# 6
答案 2 :(得分:1)
也许我不明白这个问题,因为全局变量“module”是在你实例化类之前定义的,所以它已经有效了。
class testing():
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def house(self):
d = self.a+self.b+self.c
print module
print d
module="hello"
p = testing(1, 2, 3)
p.house()
输出:
您好
6