Python内部类
一 Python中內部類
典型定義:
class MyOuter:age=18def __init__(self,name):self.name=nameclass MyInner:def __init__(self,inner_name):self.inner_name=inner_nameout=MyOuter('lqz') inner=out.MyInner('lqz_inner') print(inner.inner_name)二 內部類調用外部類的類屬性和類方法
(注意是類屬性和類方法,不是對象屬性和對象的綁定方法)
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' class MyOuter:age=18def __init__(self,name):self.name=name@classmethoddef outer_class_method(cls):print('我是外部類的類方法')class MyInner:def __init__(self,inner_name):self.inner_name=inner_namedef inner_method(self):print('我是內部類的對象方法')MyOuter.outer_class_method()out=MyOuter('lqz') inner=out.MyInner('lqz_inner') inner.inner_method()三 內部類調用外部對象的對象屬性和方法
需要在內部類構造的時候,把對象傳過來
class MyOuter:age=18def __init__(self,name):self.name=name@classmethoddef outer_class_method(cls):print('我是外部類的類方法')def outer_obj_method(self):print('我是外部類對象的綁定方法')class MyInner:def __init__(self,inner_name,obj):self.inner_name=inner_nameself.obj=objdef 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()總結
- 上一篇: 10 个让你相见恨晚的 Python 骚
- 下一篇: Python操作git