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()
  • 相关阅读:
    L1-018 大笨钟 (10分)
    L1-017 到底有多二 (15分)
    L1-016 查验身份证 (15分)
    L1-015 跟奥巴马一起画方块 (15分)
    L1-014 简单题 (5分)
    L1-013 计算阶乘和 (10分)
    L1-012 计算指数 (5分)
    L1-011 A-B (20分)
    L1-010 比较大小 (10分)
    L1-009 N个数求和 (20分)
  • 原文地址:https://www.cnblogs.com/nixindecat/p/10850392.html
Copyright © 2011-2022 走看看