Python中的类(class)(1)前言
类(class)是python中很重要的一个概念,也是我们面象对象编程中最重要的概念主之一如何去理解类,就像如何去理解函数(方法)一样,首先要有一颗常态的心,不要因为新名词,新事物,而自乱阵脚.然后,尽量用类比的方法去学习一个新事物,会让你更容易理解.
这里简单的说明一下本人对类的理解从使用角度讲,类是一个有特点的功能集成者.即当我们说到一个类的时候,
通常会去了解这个类能做什么事情.比如,我们Pygame中的矩形(Rect)就是一个类,它可以移动.
这个类有什么特点(属性)
从程序设计角度讲,类的组织是为了更好的重用代码,更好的组织代码,以及本质是一个数据类型.
本节提要内容详情类的声明
p>classMyClass(object): pass
class:是一个关键字,就像定义函数时用的def一样,说明我们要定义的是一个类MyClass:我们设计的类的类名.就像我们所有的地球人,统称"人"一样,对一个类型的统称参数object:父类
类的构函数
classMyClass(object): def__init__(self,args): pass
init(self,args)这个函数称为类的构造函数用来对类进行一些初始化的操作
这个函数在类进行实例化的时候自动调用实例/p>
classMyClass(object)ef__init__(self,text):print(text)mc=MyClass("我是在初始化的时候打印的")#类的实例化
可以看到,当我们实例话的时候,会自动调用__init__()函数名词:类中的函数,通常称为类的方法注意:构造函数中,函数名是固定的,第一个参数self也是固定的.如果没有self这个参数,构造函数会出错看以下实例
classMyClass2(object)ef__init__(text):print(text)mc=MyClass2("我是在初始化的时候打印的")
效果图总结:构造函数/p>
函数名:init()
第一个参数self固定的
类的方法
类的实例方法要点/p>
定义在类内部的函数
第一个参数必须是self
使用时,实例名.方法名()
#类的方法示例classMyClass3(object)构造函数def__init__(self,text):print("我是构造方法"+text)#类的方法:move()defmove(self):print("我移动了")mc4=MyClass3("mc4")mc4.move()#调用类的move()方法
类的静态方法:当我们希望一个类,不实例化也能调用类的某个方法时,这个方法应该被定义成静态方法
方法定义前加下
staticmethod修饰
方法的参数没有self
调用时直接用类名.方法名()来使用
classMyClass5(object)构造函数def__init__(self,text):print("我是构造方法"+text)#类的静态方法,可以实例化直接调用
staticmethoddefdd():print("所有实例共有方法")MyClass5.dd()类的属性
第一种:实例属性要点/p>
定义在构造函数/类的方法内
在类的定义中用self.属性名来使用
实例化类后用实全例名.属性名来访问或者修改第二种:类的属性要点:
定义在方法外
在类的定义中用类名.属性名来使用
类的属性被所有类的实例所共有(改变一次类属性,其他的实例的类属性也会变)
可以直接使用类名.属性名来使用
当类的属性被实例单独改变时,这个属性会与实例绑定,不再受类.属性名改变而改变
#类的属性示例classMyClass6(object):weight=#类属性def__init__(self,name,age):self.name=name#实例属性nameself.age=age#实例属性ageprint(MyClass6.weight)#打印类属性mc6_1=MyClass6("mc6_1",12)#实例化类print(mc6_1.name,mc6_1.age)#访问实例化属性#改变类属性与实例化属性MyClass6.weight=#我又重了mc6_1.name="mc6_1改名了"mc6_1.age=11#我变年轻了print(MyClass6.weight)print(mc6_1.name,mc6_1.age)#访问实例化属性mc6_2=MyClass6("mc6_2",20)print(mc6_2.weight)mc6_2.weight=#改变了实例的类属性print(mc6_1.weight)print(mc6_2.weight)MyClass6.weight=#再改类属性print(mc6_1.weight)print(mc6_2.weight)#该实例的此类属性不会再随着类名.属性名的操作方法改变而改变了后记
类的内容还有很多,这里简单的介绍了类的基本内容:
类的定义方法
类的构造函数
类的方法
类的属性
这几天在折腾电脑,给自己的电脑装了个黑苹果系统.由于无线网卡驱动问题,导致黑苹果系统还无法正式投入使用.明天网卡就能到了,到时候用黑苹果感受一下写代码的感觉是不是比win好点.
今天更新的内容有点少,但是内容的深度比较大,需要慢慢来体会
预览时标签不可点收录于话题#个上一篇下一篇