[英]Python: How do I make a variable from a class method accessible to class?
我想从类中访问一个方法变量(不是同一个方法)
def MyDef():
class MyClass():
def meth1(self):
meth2(7)
def meth2(self, user_value):
value = 5 - 6*user_value
if value > 2:
# do something
MyDef()
我收到以下错误:
NameError:未定义名称“值”。
有人可以帮帮我吗?
这不是答案,但您在这里遗漏了一些基本的 OOP 内容。 我不能在评论中包含全部内容,所以希望这会有所帮助。
__init__
函数meth1
是我认为你想要的__init__
def MyDef():
class MyClass():
def __init__(self):
self.meth2(0)
self.do_something
def meth2(self, user_value):
self.value = 5 - 6*user_value
@property
def do_something(self):
if self.value > 2:
print "hey"
myobject = MyClass()
return myobject.value
也许更好的方法是
def MyDef(value_entered):
class MyClass():
def __init__(self, user_value=value_entered):
self.user_value = user_value
self.meth2(self.user_value)
self.do_something
def meth2(self, user_value):
self.value = 5 - 6*user_value
@property
def do_something(self):
if self.value > 2:
print "hey"
myobject = MyClass()
return myobject.value
MyDef(0)
您需要在类范围内但在方法之外声明变量。 此外,您的方法需要是静态的,并且您需要在尝试使用修改后的变量之前调用您的方法...如果您的目标是在创建 MyDef 类型的对象时发生特定的事情,请告诉我,因为这是不是你应该如何使用一个类......
def MyDef():
class MyClass():
def meth1():
meth2(7)
def meth2(user_value):
return 5 - 6*user_value
value = meth1()
if value > 2:
# do something
同样,这是您问题的答案,但请考虑编辑您的问题以描述您这样做的目标,因为这种方法可能不是正确的方法......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.