一 Python中內部類
class MyOuter: age=18 def __init__(self,name): self.name=name class MyInner: def __init__(self,inner_name): self.inner_name=inner_name out=MyOuter('lqz') inner=out.MyInner('lqz_inner') print(inner.inner_name)
二 內部類調用外部類的類屬性和類方法
class MyOuter: age=18 def __init__(self,name): self.name=name @classmethod def outer_class_method(cls): print('我是外部類的類方法') class MyInner: def __init__(self,inner_name): self.inner_name=inner_name def inner_method(self): print('我是內部類的對象方法') MyOuter.outer_class_method() out=MyOuter('lqz') inner=out.MyInner('lqz_inner') inner.inner_method()
三 內部類調用外部對象的對象屬性和方法
需要在內部類構造的時候,把對象傳過來
class MyOuter: age=18 def __init__(self,name): self.name=name @classmethod def outer_class_method(cls): print('我是外部類的類方法') def outer_obj_method(self): print('我是外部類對象的綁定方法') class MyInner: def __init__(self,inner_name,obj): self.inner_name=inner_name self.obj=obj def inner_method(self): print('我是內部類的對象方法') MyOuter.outer_class_method() self.obj.outer_obj_method() out=MyOuter('lqz') inner=out.MyInner('lqz_inner',out) inner.inner_method()
REF
https://blog.csdn.net/qq_42721964/article/details/85044615