Python档案袋( 面向对象 )

编程之家收集整理的这篇文章主要介绍了Python档案袋( 面向对象 )编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

搜索热词

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

简单的类:

 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,然后执行父类2
 2     pvarx= 3 
类构造方法
 6         print(var1x)
 7      8      9         PPPPPP10 
继承P类
12  P1(P):
13     重写父类方法
15         P.pfun1(self) #调用父类方法1
p1p1p1p1p1p118 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):
    p1v


p1=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.setter
10    11        P.funxvar11x=funxvar11
12 
13    @funx.deleter
14    15        del P.funxvar11x
16 
17 p1=P()
18 p1.funx 输出:----------- xxxx
19 p1.funx=1122"  赋值
20 p1.funx 输出:----------- 1122
21 
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档案袋( 面向对象 )所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

猜你在找的Python相关文章

微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 测试只能证明程序有错误,而不能证明程序没有错误。 —— Edsger Dijkstra 目录 本节我
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 当你选择了一种语言,意味着你还选择了一组技术、一个社区。 目录 本节我们来介绍闭包与装饰器。 闭包与
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 程序 = 算法 + 数据结构 —— Nicklaus Wirth 目录 从这句话程序 = 算法 +
微信公众号:码农充电站pro 个人主页: 当你选择了一种语言,意味着你还选择了一组技术、一个社区。 —— Joshua Bloch 目录 1,什么是计算机编码 编码 从一种形式 到另一种形式的过程,就
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果代码和注释不一致,那很可能两者都错了。 —— Norm Schryer 目录 前几节我们已经介绍
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 软件工程的目标是控制复杂度,而不是增加复杂性。 —— Dr. Pamela Zave 目录 我们在上
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 代码写的越急,程序跑得越慢。 —— Roy Carlson 目录 Python 字典是另一种非常实用
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那很可能是用错算法了。 —— Carig Zerouni 目录 前几节我们介