首页 > 解决方案 > Python无法分配对象变量

问题描述

创建类实例时,我尝试通过函数分配变量,但它不起作用。

class Test:
    def __init__(self, l):
        self.l = l
        self.func(self.l) # or I tried self.func(l)
        self.z = None
        self.y = None

    def func(self, l):
        self.z = l  # doesn't work
        self.y = 123 # doesn't work

x = Test('test')
print(x.z) # = None
print(x.y) # = None

有人能解释一下吗,欢迎链接!

标签: pythonoop

解决方案


您正在重新定义self.z,并且self.yNone您使用 定义它们之后func。摆脱self.zand self.yin__init__

class Test:

    def __init__(self, l):
        self.l = l
        self.func(self.l) # or I tried self.func(l)
        # These are redefining the variables, comment out
        # self.z = None
        # self.y = None

    def func(self, l):
        self.z = l  
        self.y = 123 

推荐阅读