本文实例讲述了Python面向对象程序设计之类和对象、实例变量、类变量用法。分享给大家供大家参考,具体如下:
类和对象:
- 类的定义:用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
- 类的优势:将一个对象的功能集中于一体,便于操作,降低了代码的重复。
- 实例化:创建一个类的实例,类的具体对象。
- 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
使用 class 语句来创建一个新类:
class Dog: #self 代表的是类的实例,代表当前对象的地址 def __init__(self,name):##称为类的构造函数,进行初始化成员变量 self.name=name def bulk(self):###自定义函数 print("%s:汪汪!"%self.name) d1=Dog("奥巴马")##创建对象,传入__init__所需的变量,self默认自动传入 d1.bulk()#调用方法 print(d1)
为什么要有self:
以类变量和实例变量为解释,对于共有属性,一般会在共有部分定义,不需要__init__,而比如说因为人人都有自己的名字,那么名字应该是一个人私有的。而类的函数由于为了节约资源,并不会拷贝给每一个对象,每一个对象都要从类的定义区中调用方法,对于涉及对象特有属性的方法,调用方法的时候必须传入自身对象self才能使函数获得私有的数据,而调用这个私有的数据使用”self.变量名”.
附:
什么是新式类:https://www.jb51.net/article/183280.htm
实例变量和类变量:
- 实例变量是对于每个实例都独有的数据,而类变量是该类所有实例共享的数据
- 变量使用的顺序是:实例变量--》类变量,如果实例变量中没有才会去类变量中找
- 【但即使是类中的变量,也是需要使用self.变量名来使用】
class Dog: age=8 def __init__(self,name): self.name=name def bulk(self): print("汪汪") d1=Dog("包子") d2=Dog("馒头") d1.age=10 print("Dog:",Dog.age,"\tD1:",d1.age,"\tD2:",d2.age) ------------------------- 结果: Dog: 8 D1: 10 D2: 8
- 节约论:python为了简洁性,不会复制一份类的数据给每一个对象,每一个对象之后存有其特有的属性,当其需要使用属性或方法时,先看自己有没有,如果没有再去类中找
类变量的创建:
- 可以在声明类的时候定义
- 也可以使用赋值来定义:
实例变量的创建:
- 可以在__init__中定义
- 也可以使用赋值来定义:
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。