首页 > 编程语言 >Python 内部类,内部类调用外部类属性,方法

Python 内部类,内部类调用外部类属性,方法

时间:2023-10-08 21:08:46浏览次数:47  
标签:__ 调用 内部 Python self inner method def name

 

一 Python中内部类

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://blog.51cto.com/emanlee/7761190

相关文章

  • Python检测Windows剩余磁盘空间
    设计模块包:wmi  #pipinstallwmiwindows1064位,安装成功;windows200864位,安装失败。 WindowsManagementInstrumentation(WMI)AlightweightwrapperaroundtheWMIclassesavailableforallWin32platforms.Theseprovideastandardwaytoaccesssystem-leveli......
  • Python 压缩文件解压文件
    安装zipfilepip3installzipfile38pip3installzipfile37 f=zipfile.ZipFile("test.zip",mode="")//mode解压是r,压缩是w,追加压缩是a  压缩文件importzipfiledefzip_files(files,zip_name):zip=zipfile.ZipFile(zip_name,'w',zipfi......
  • python29days
    绑定方法绑定给对象绑定给类非绑定方法(静态static)封装隐藏属性property装饰器(内置的,用来把函数伪装成属性)封装————————————————————————————————————————————————————————  该方法就......
  • @是调用数据库连接(database link)的意思
    数据库链接作用:从a数据库到b数据库之间访问的一种手段。        1、跨库查询:select*from表明@数据库名[where条件语句]        2、跨库同步数据:insertinto表名select*from 表名@数据库名[where条件语句]   例如:假设有两个数......
  • 记一次某大型集团内部通用OA系统 SQL注入漏洞挖掘
    引言本文记录了一次对某大型集团内部通用OA系统基于布尔盲注的SQL注入漏洞的挖掘,因内容敏感,大部分区域均马赛克处理。漏洞挖掘在常规的挖掘中没有什么突破口,但是在找回密码处发现一个功能接口,允许用户通过邮箱找回密码,接收的参数为工号,设有验证码,但在简单测试之后发现验证码是......
  • 【Python】数独游戏
    StartimportrandomclassSudokuGenerator:BOARD_SIZE=9SUBGRID_SIZE=3def__init__(self)->None:self.board=[[0for_inrange(self.BOARD_SIZE)]for_inrange(self.BOARD_SIZE)]defgenerate(self):self.fill_va......
  • Python入门示例系列10 字符串(初级)
     字符串(string)Python中的字符串用单引号'或双引号"括起来,同时使用反斜杠\转义特殊字符。'ABC' 与"ABC"完全等价。示例:s1="hello"#双引号"括起来s2='hello'#单引号'括起来s3=''#空字符串s4=""#空字符串s5='''......
  • Python入门示例系列07 Python注释
     Python中的注释有单行注释(linecomment)和多行注释(paragraphcomment,blockcomment):Python中单行注释以#(hash,pound)开头,例如:#这是一个单行注释acommentlineprint("Hello!")#这是一个单行注释acommentline示例:#thisisthefirstcommentspam=1#andthisist......
  • Python入门示例系列06 使用PyCharm单步调试
    摘要: 使用PyCharm单步调试视频演示(0分52秒)启动PyCharm#新建Project#输入项目位置#注意:选定解释器新建py文件输入文件名,按回车输入代码a=1b=2c=3print("helloworld")左侧点击设置断点调试(代码区域,右键,调试)查看Variable结果 系列目录Python入门示例系列0......
  • Python入门示例系列05 使用PyCharm
     摘要: 使用PyCharm视频演示(1分35秒) 启动PyCharm新建Project【File菜单--NewProject】输入项目位置【即保存项目文件,代码文件的位置】注意:选定解释器【如果安装了多个Python,要选择合适的编译器,Python.exe文件】新建py文件【File菜单--New--Pythonfile】输......