[英]How to define class variables using the functions and variables of an instance in Python
有没有办法使用实例的变量和函数来定义类变量? 谢谢
简化后的代码如下所示:
def ClassA():
X = self.func(self.a)
def __init__(self, avalue):
self.a = avalue
def func(self):
return self.a + 5
NameError: 名称 'self' 未定义
首先,您使用class
而不是def
定义一个 Class 。
self
只需要在类的函数定义内使用,因为它们会改变作用域。 在它们之外你不需要它: x = func(a)
。
但是您的代码无论如何都不起作用,因为该实例尚不存在。
我猜你试图做的是:
class ClassA():
def __init__(self,avalue):
self.a = avalue
self.X = self.func
def func(self):
return self.a + 5
b = ClassA(43)
b.X()
产出
48
class A():
def __init__(self):
self.y = 0
def m(self):
A.x = 1
b = A()
#print(b.x) doesn't work here since we haven't made it yet.
b.m()
print(b.x) #1
c = A()
print(c.x) #1
A.x = 2
print(c.x) #2
print(b.x) #2
print(vars(A)) #{'__dict__': <attribute '__dict__' of 'A' objects>, '__module__': 'builtins', 'x': 2, '__init__': <function A.__init__ at 0x7f15f800d730>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None, 'm': <function A.m at 0x7f15f800d7b8>}
你会寻找这样的东西吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.