首页 > 编程语言 >python 内部类调用相关

python 内部类调用相关

时间:2022-10-30 10:33:55浏览次数:42  
标签:__ 调用 内部 python self inner method def name

 

  • 内部类
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()

 

标签:__,调用,内部,python,self,inner,method,def,name
From: https://www.cnblogs.com/songshutai/p/16840624.html

相关文章

  • FR调用kettle
    packagecom.fr.data;importcom.fr.script.Calculator;importcom.fr.data.DefinedSubmitJob;importcom.fr.log.FineLoggerFactory;importcn.hutool.core.codec.Base64......
  • 函数自调用与闭包(详解)
    一、函数数的定义有两种:一为函数的声明、二为函数表达式-匿名函数函数声明1functionfn(){//需要函数名2console.log("函数声明");3}4fn()函数表达式......
  • python精确计算浮点数
    因为二进制计算的问题,部分浮点数不能精确计算,如>>>1.1+2.23.30000000000003可以使用round(number,保留位数)或decimal包fromdecimalimportDecimala=Decima......
  • python导入包的注意事项
    模块导入使用import关键字。模块导入主要有以下形式importrequetsfromrequestsimportgetfromrequetsimport*创建的文件夹中只有包含__init.py__文件才......
  • python 封装 多态 继承 重写
    面向对象的三大特征封装:提高程序的安全性继承:提高代码的复用性(继承包括重写)多态:提高程序的可扩展性和可维护性 三大特征的实现:封装:将数据(属性)和......
  • matlab调用C程序
    通过把耗时长的函数用c语言实现,并编译成mex函数可以加快执行速度。Matlab本身是不带c语言的编译器的,所以要求你的机器上已经安装有VC,BC或Watcom C中的一种。如果你在安......
  • Python 多重继承时metaclass conflict问题解决与原理探究
    背景最近有一个需求需要自定义一个多继承abc.ABC与django.contrib.admin.ModelAdmin两个父类的抽象子类,方便不同模块复用大部分代码,同时强制必须实现所有抽象方法,没想按想......
  • Python 实现栈的几种方式及其优劣
    1栈的概念栈由一系列对象对象组织的一个集合,这些对象的增加和删除操作都遵循一个“后进先出”(LastInFirstOut,LIFO)的原则。在任何时刻只能向栈中插入一个对象,但只能取得......
  • 编译安装python解释器
    Step1官网下载对应版本的压缩包如下图是python3.9.14版本的解释器Step2进入终端找到该压缩包并解压tarxfPython-3.9.14.tgzcdPython-3.9.14.tgzStep3编译安......
  • python3使用libpcap库进行抓包及数据处理
    python版本:python3.9libpcap版本:1.11.0b7pythonlibpcap库是底层绑定c语言libpcap库的开发包,旨在提供python应用可访问的unixclibpcap库API(以及为win32系统提供的Npca......