zoukankan      html  css  js  c++  java
  • python内部类

    java有四种内部类,用于在类内部完成较为复杂的逻辑,并且可以访问类的私有属性

    python也有内部类,与java内部类差不多,下面是简单的用法

    class Outer:
        age = 18
    
        def __init__(self, task_id):
            self.task_id = task_id
    
        def common(self):
            print("我是外部类的普通方法")
            return self.task_id
    
        @classmethod
        def c_method(cls):
            print("我是外部类的类方法")
    
        @staticmethod
        def println():
            print("我是外部类的静态方法")
    
        # obj代表外部类的对象
        class Inner:
            def __init__(self, table_name, obj):
                self.table_name = table_name
                self.obj = obj
    
            def __str__(self):
                print("打印外部类的类属性")
                print(Outer.age)
                print("打印外部类的类方法")
                Outer.c_method()
                print("打印外部类的静态方法")
                Outer.println()
                print("打印外部类的普通方法")
                self.obj.common()
                print("打印外部类的属性task_id" + self.obj.task_id)
                return self.table_name
    
            def run(self):
                print("启动")
    
        def execute(self):
            # 外部类方法访问内部类
            print("外部类方法实例化内部类")
            inner_obj = self.Inner("table", self)
            print("在外部类方法打印内部类对象" + str(inner_obj))
            inner_obj.run()
    
    
    if __name__ == "__main__":
        outer = Outer("task")
        print('outer对象' + str(outer))
        inner = Outer.Inner("table", outer)
        print('inner对象' + str(inner))
        outer.execute()
  • 相关阅读:
    RabbitMQ安装
    windows下安装Erlang
    利用StopWatch类监控Java代码执行时间并分析性能
    HttpClinet工具类
    Javap与JVM指令
    idea全局护眼色绿豆沙
    删除注册在Eureka的服务(无效,多余)
    Steam之两个list间交集、并集、差集
    微服务与SpringCloud简介
    VS code 豆沙绿护眼主题
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/15306513.html
Copyright © 2011-2022 走看看