大家好,希望大家身体健康。
我在尝试为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
类创建了一个实例。
根据您想要获得vara
和varb
的评论
试试这个。
obj = test.innerclass()
obj.defined()
print(obj.vara, obj.varb)