我正在尝试将我的功能组织成类。我想在“内部”类中使用“外部”类中的属性 self.file_list。
class Outer:
"""Outer Class"""
def __init__(self, file_list):
self.file_list=file_list
## instantiating the 'Inner' class
self.inner = self.Inner()
## inner class
class Inner:
"""First Inner Class"""
def __init__(self):
print (Outer.file_list) <-- this line doesn't work
pass
clean =Outer (['cats', 'dogs'])
但是我收到此错误:
<ipython-input-63-0dfab321da74> in __init__(self)
10 """First Inner Class"""
11 def __init__(self):
---> 12 print (self.file_list)
13
14 pass
AttributeError: 'Inner' object has no attribute 'file_list'
如何在内部init方法中访问属性 self.file_list ?或者在一个类中将函数组合在一起的传统方法是什么?
Outer
是类,并且file_list
是该类的实例属性。您无法访问Outer.file_list
,因为它不存在。
创建 的实例时Inner
,您需要传递Outer
父实例才能访问其成员。
将您的代码更改为:
class Outer:
"""Outer Class"""
def __init__(self, file_list):
self.file_list=file_list
## instantiating the 'Inner' class
self.inner = self.Inner(self)
## inner class
class Inner:
"""First Inner Class"""
def __init__(self, outer_parent):
print (outer_parent.file_list)
pass
应该让它工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句