python之继承
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | # coding=utf-8 ''' 继承的作用:提高代码的重用率 2)重写父类的方法:在子类中定义了一个和父类的方法,重写父类的方法 ''' ''' 类里面的属性和方法 一、属性: 1。类属性:直接定义在类里面的变量叫做类属性,类属性可以通过类访问,也可以通过对象访问 1.1公有有属性:不管类里面还是类里面都可以访问 1.2私有属性: 1)两个下划线开头的叫做私有属性,类外面不可以直接使用私有属性 2)只能在类里面使用,在类外部是无法使用的 2.实例属性 2.1实例属性的定义:对象.属性=属性值 2.2实例属性只能通过对象去访问 #方法: #实例方法:第一个参数是:self,self代表的是实例对象本身,只能使用实例对象来调用 3)一般是以实例对象为主体去调用的 #类方法: 第一个参数是:cls 可以使用类和实例对象来调用 3)类方法一般以类为主体调用,一般是以属性 #静态方法: 1)没有强制定义参数 2)可以通过类和实例对象来调用 3)静态方法调用的时候,内部不会调用使用对象和类相关的属性 #使用场景 4.调用重名的父类方法 子类重写了父类的方法后,如何在子类中再调用父类的方法 方法一、父类名.方法名(self) 方法二、super.方法名() ''' import random class MyClass(): attr = 100 #共有属性 __attr = 200 #私有属性 def fund( self ): phone = self .randoms_phone() print ( "这个是实例方法" ) print ( "获取私有属性的值{}" . format ( self .__attr)) print ( "获取私有属性的值{}" . format (MyClass.__attr)) @classmethod def cls_fund( cls ): print ( "这个是类方法" ) @staticmethod def stc_fund(): print ( "这个是静态方法" ) @staticmethod # 与类无关的外部函数添加到类内部,可以使用静态方法调用,可以在其他类方法和实例对象方法中使用 def randoms_phone(): phone = '13' for i in range ( 9 ): phone + = str (random.randint( 0 , 9 )) return phone print (MyClass.attr) #print(MyClass.__attr)类外面不可以直接使用私有属性 MyClass().fund() ''' 对象的.__dict__属性:获取对象所有属性以字典的形式返回 动态属性设置 内置函数:setattr(参数1,参数2,参数3) 参数1:类对象 参数2:给对象设置属性名(字符串类型) 参数3:属性值 ''' class Cases: def __init__( self ,case_id,title,url,data): self .case_id = case_id self .title = title self .url = url self .data = data datas = { 'case_id' : 1 , 'title' : '用例1' , 'url' : 'baidu.com' , 'data' : 'nihao' } case = Cases( * * datas) print ( "case=" ,case) print ( "case.__dict__====" ,case.__dict__) setattr (case, "name" , "ceshiyongl" ) print ( "setattr==case.__dict__====" ,case.__dict__) #动态属性设置 for k,v in datas.items(): setattr (case,k,v) print ( "for_setattr==case.__dict__====" ,case.__dict__) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律