zoukankan      html  css  js  c++  java
  • Python内部类调用外部类

    Python内部类调用外部类

    Python内部类

    class MyOuter:
        trait='cute'
        def __init__(self,name):
            self.name=name
    
        class MyInner:
            def __init__(self,inner_name):
                self.inner_name=inner_name
    
    out=MyOuter('small_cat')
    inner=out.MyInner('cat_inner')
    print(inner.inner_name)

    内部类调用外部类属性与方法

    ps:是类属性类方法,不是对象属性与绑定方法

    class MyOuter:
        trait='cute'
        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('small_cat')
    inner=out.MyInner('cat_inner')
    inner.inner_method()

    内部类调用外部类'对象'的对象属性和绑定方法

    ps:内部类构造时,将对象传过去

    class MyOuter:
        trait='cute'
        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('small_cat')
    inner=out.MyInner('cat_inner',out)
    inner.inner_method()
  • 相关阅读:
    校软第二次考核11.11
    计算机视觉入门live笔记
    大数阶乘题解
    校软招新考试 原卷 题解
    校软件班招新考试A卷 题解
    【好题】最短路变形+dp——ICPC NCNA 2018G
    贪心/二分——cf1342D
    思维+贪心+dp——cf1341D
    【经典】容斥+排列组合——cf1342E
    计算几何+求质心+求多边形与圆交面积——ICPC GNYR 2019
  • 原文地址:https://www.cnblogs.com/nixindecat/p/10850392.html
Copyright © 2011-2022 走看看