内部类定义不断要求自我论证



大家好,希望大家身体健康。

我在尝试为innerclass使用self变量时遇到了一些问题,但是outerclass的工作得很好

#Assume this file is named classes.py
class outerclass():
def __init__(self):
self.ina = 10 
self.inb = 20
self.inc = 30
class innerclass(object):
def defined(self):
self.vara = 40
self.varb = 50

我这样称呼这个班为

import classes
test = classes.outerclass()
test.innerclass.defined()

输出:

Traceback (most recent call last):
File "<pyshell#501>", line 1, in <module>
test.innerclass.defined()
TypeError: defined() missing 1 required positional argument: 'self'

有人能帮我吗?我已经想了一段时间了。

这与内部类无关。define函数是一个方法,您应该将它用于非静态的实例。

下面的代码运行良好。因为,我们在一个实例上调用了define。

test.innerclass().defined()

test.innerclass()test.innerclass类创建了一个实例。


根据您想要获得varavarb的评论

试试这个。

obj = test.innerclass()
obj.defined()
print(obj.vara, obj.varb)

最新更新