我是面向对象编程的新手,我想做什么基本上是在一个类里面打印一个变量,我认为这可能是一个非常简单的答案,但我只是想弄明白,谢谢为了帮助,继承我的代码:
class test():
def test2():
x = 12
print(test.test2.x)
这给了我以下错误:
Traceback (most recent call last):
File "/home/vandeventer/x.py", line 4, in <module>
print(test.test2.x)
AttributeError: 'function' object has no attribute 'x'
当我尝试:
class test():
def test2():
x = 12
print(test.x)
我得到:
Traceback (most recent call last):
File "/home/vandeventer/x.py", line 4, in <module>
print(test.x)
AttributeError: type object 'test' has no attribute 'x'
欢迎任何帮助
答案 0 :(得分:5)
你无法做你想做的事;局部变量仅在函数调用的生命周期中存在 。它们不是函数的属性,也不以任何其他方式在调用之外可用。它们在您调用函数时创建,在函数退出时再次销毁。
你可以设置函数对象的属性,但这些属性独立于本地人:
>>> class test():
... def test2():
... pass
... test2.x = 12
...
>>> test.test2.x
12
如果您需要保留一个函数值,或者返回值,或者将其赋值给持续时间超过函数的值。实例上的属性是保存内容的常见位置:
>>> class Foo():
... def bar(self):
... self.x = 12
...
>>> f = Foo()
>>> f.bar()
>>> f.x
12
答案 1 :(得分:1)
如果要打印该值,还可以使用return语句和self参数。
class test():
def test2(self):
x = 12
return x
test = test()
print(test.test2())
我不知道这是否能完全回答您的问题,但这是打印x的一种方法。