如何在类内部调用嵌套类?遇‘类未定义’错误求解
解决Python嵌套类调用的'class is not defined'错误
你在实例方法里直接调用testObject()会报错,因为嵌套类testObject是外层类testArray的属性,不能直接在实例方法的局部作用域里直接引用。可以用两种方式正确调用:
方法一:通过实例的类对象访问
利用self.__class__获取当前实例所属的类,再访问嵌套类:
class testArray: class testObject: blah = 0 def __init__(self, number): self.number = 1 # 修正写法 object = self.__class__.testObject() object.blah = self.number
方法二:直接通过外层类名访问
直接用外层类testArray来引用嵌套类testObject:
class testArray: class testObject: blah = 0 def __init__(self, number): self.number = 1 # 修正写法 object = testArray.testObject() object.blah = self.number
嵌套类属于外层类的成员,必须通过外层类或者实例对应的类对象来访问,不能在实例方法里直接裸写嵌套类名。
内容的提问来源于stack exchange,提问作者Dongbae
相关产品推荐
相关产品推荐

