Python档案袋( 面向对象 )

Python档案袋( 面向对象 ),第1张

概述类即是一个模型,根据模型建立起不同的对象,对象间拥有共同的一些属性 简单的类: 类变量和实例变量: 类变量: 类及所有实例共享变量,推荐使用方法是 【类名.变量名】 实例变量(self.变量名): 只

类即是一个模型,根据模型建立起不同的对象,对象间拥有共同的一些属性

简单的类:

 1 class P: 2     #类变量,所有实例共享变量,推荐使用方法是:类名.类变量名 3     pvarx="ppvar1" 4  5     构造函数 6     def __init__(self,valuex): 7         实例变量,只属于当前实例 8         self.valuex=valuex 9 10     类方法11     def pfun1(self):12         print(类方法1输出",self.valuex,P.pvarx)13 14     析构函数,先生成,先死亡15     __del__(self):16         再见,实例:17 18 创建对象,类的实例化19 p1=P(传递参数)20 21 调用类变量22 P.pvarx=1122233323 24 调用类方法25 p1.pfun1()26 27 删除对象,变量等,直接使用del()28 del p1
类变量和实例变量:

类变量:

类及所有实例共享变量,推荐使用方法是 【类名.变量名】

实例变量(self.变量名):

只属于当前实例

注意:

如果同名且用实例调用时,则优先寻找到实例变量

使用实例调用并修改类变量值时,只能修改自己的,不影响整体

类方法使用全局变量:

Global声明变量为外部变量,表示可以长久修改外部变量,不写则只能使用,不能修改

 1 varx=1 外部变量 2  3  XX: 4      funx(self): 5         global varx #声明为外部变量,表示可以长久修改外部变量,不写则只能使用 6         varx=111------",varx) 输出:111 8  9 x=XX()10 x.funx()11 print(varx) 输出:1

类属性的私有化

私有变量:

在变量前加两个下划线即可,如【self.__变量名】,只能在类内访问,不能在类外通过实例访问

私有方法:

在类方法名前加入两个下划线,如【def __方法名(self){}】,使用与上相同

类的继承:
类可以实现多继承,多继承则可以用逗号分隔类名,如:子类名(父类1,父类2),继承的执行时从左到右,在列子中是先执行父类1,然@R_404_6915@父类2
 2     pvarx= 3 类构造方法 6         print(var1x) 7      8      9         PPPPPP10 继承P类12  P1(P):13     重写父类的方法15         P.pfun1(self) #调用父类的方法1p1p1p1p1p1p118 p1=P1(ppp111")实例化19 20 P.pfun1(p1)调用父类的方法2
构造函数:
如果子类有自己的构造函数,则必须在子类构造函数里调用父类的构造函数,如果父类的构造函数参数为空,则可忽略。使用下列方法1可以实现多继承效果,一句就可以实现多个父类的构造函数,只是其中父类的构造函数参数必须相同
super(P1,self).__init__(v1) #执行父类构造函数方法一    P(v1) #执行父类构造函数方法二    P.__init__(self,v1) 方法三    print(v1,v3)

实例变量的继承:

父类中可以访问子类的实例变量
 P:    类方法     pfun1(self):         P1(P):    p1vp1=P1(11111)实例化p1.pfun1() 输出:PPPPPP 11111
多态
一个方法的多种实现,通过传递实例对象,实现调用实例中对应的方法
 pto(obj):    obj.funx()
静态方法:
通过类名调用,与实例无关
 P:   @staticmethod    funx(varpx):       -----------dongxiaodong")
类内方法:
不可访问实例变量,只能访问类变量:
类变量   classvarx=112233"   (self):       self.xvar=类方法不可访问此实例变量类内方法   @classmethod    funx(self,varpx):       P()p1.funx(")
属性方法:
调用简单,调用时如同使用变量
 P:   属性方法   @property    funx(self):       )p1=P()p1.funx  调用,如同变量调用
内容补充:
 2    funxvar11x=xxxx 3     4     5    @property 6     7         9    @funx.setter10    11        P.funxvar11x=funxvar1112 13    @funx.deleter14    15        del P.funxvar11x16 17 p1=P()18 p1.funx 输出:----------- xxxx19 p1.funx=1122"  赋值20 p1.funx 输出:----------- 112221 22 del p1.funx 删除
类的一些特殊方法
 2  __call__(self,*args,**kwargs): 3      ----call---- 5 p1= 6  7 p1(11对象加括号传递参数,自动调用类中的call方法 8 print(p1.__class__) 得到所属类名print(P.__dict__) 类名调用,打印类里的所有属性实例调用,打印实例的所有属性
反射
 pfunx(self,name):---- pfunx ---- 7 if hasattr(p1,pfunx"): 判断对象里是否有某个方法 8     funx=getattr(p1,1)">") 得到改方法的内存地址 9     funx(调用该方法11     setattr(p1,1)">pvar设置实例变量值,没有则新建实例变量12     print(getattr(p1,1)">")) 使用实例变量13     delattr(p1,1)">")   删除实例变量
总结

以上是内存溢出为你收集整理的Python档案袋( 面向对象 )全部内容,希望文章能够帮你解决Python档案袋( 面向对象 )所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1189828.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存