Python面向对象程序设计第一弹
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python面向对象程序设计第一弹相关的知识,希望对你有一定的参考价值。
类和对象:
定义类:
class 类名:
属性
方法
定义类的对象:
类的对象名=类名()
类的属性:分为公有和私有,类似于c++的private和public,私有变量名前面添加__
构造函数:在创建类的对象的时候,对类进行初始化的函数。(它的功能远不止赋值这么简单,思维不要被局限了)
形式:def __init__(self,其他参数)
语句块
关于其中的self,self代表的是类的实例,代表当前对象的地址。(按照我的逻辑解释,因为类里面的函数作用在类的对象上,那么对象就是自身,用self表明)
延伸:关于类的实例:http://blog.sina.com.cn/s/blog_44178ab70100br3c.html。
类方法:不需要定义对象,直接用类名.函数(),这个函数就是类方法
类的实例方法:需要定义对象,然后运用定义的对象名.函数()进行调用,这个就是实例方法。
析构函数:与构造函数类似,只不过是在结尾的时候进行,而且需要自己主动调用(构造函数不需要主动调用,由其定义可知)
静态属性与静态方法:
1)它们都是属于类的
2)静态方法无须传入self参数,无法访问实例变量。
什么是实例变量?
在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。类的每个对象维护它自己的一份实例变量的副本。
3)直接通过类名访问
4)静态方法定义
类的继承:
格式:
class 类名(基类名):
1 #这的确是一段值得研究的程序,在这里我只想提出:作为子类,既可以用自己名字,也可以用老爸的名字来调用对应的属性和方法 2 #但是,如果子类有和父亲一样的名字的属性和方法,那么会替代,只能用父类自己的名字调用。 3 class citizen: 4 def __init__(self): 5 citizen.IDCard=‘515611‘ 6 citizen.name=‘Naruto‘ 7 citizen.age=18 8 def kk(self): 9 print(citizen.IDCard,citizen.name,citizen.age) 10 11 class student(citizen): 12 def __init__(self): 13 student.number=‘123123‘ 14 student.room=‘153‘ 15 student.age=97 16 def kk(self): 17 #如何输出以前的值?依旧用citizen?还是用student?好像都可以。 18 print(citizen.IDCard,citizen.name,citizen.age,student.number,student.room,student.age) 19 20 # c=citizen() 21 # c.kk() 22 d=student() 23 d.kk() 24 # print(citizen.IDCard)
以上是关于Python面向对象程序设计第一弹的主要内容,如果未能解决你的问题,请参考以下文章