繁体   English   中英

如何在 Python 中使用实例的函数和变量定义类变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM