Python內部類中如何訪問外部類中的屬性和方法
今天遇到一個Python內部類中如何訪問外部類的屬性和方法的問題,在網上查了一下,推薦以下兩種:
1. 傳入外部類的例項
#傳遞外部類的例項
class OuterClassA(object):
def __init__(self):
self.a = 0
def outer_func_1(self, text):
print(text)
class InnerClass(object):
def __init__(self):
self.out = OuterClassA()
def inner_func_1(self):
self.out.outer_func_1('balabala')
outer = OuterClassA()
outer.outer_func_1('abcdefg')
outer.InnerClass().inner_func_1()
2. 將內部類封裝在函式中,並傳入self
# 傳遞self
class OuterClassB(object):
def __init__(self):
self.a = 0
def outer_func_1(self, text):
print(text)
def _class_def_inner_class(self):
outter_class = self
class InnerClass(object):
def __init__(self):
self.outter = outter_class
def inner_func_1(self):
self.outter.outer_func_1('aaabbb')
return InnerClassouter2 = OuterClassB()
InnerClassDef = outer2._class_def_inner_class()
inner = InnerClassDef()
inner.inner_func_1()