面向对象的概念:
python是一门面向对象的编程语言
面向对象编程中,最常见的表现就是基于类来表现
什么是类(class):
类是用来描述具有相同属性和方法对象的集合
类=属性+行为
属性:特征
方法:行为
什么是对象:
对象是类的实例
世间万物都可以是对象
简单的定义一个类,关键字是class
属性和方法不要随便定义,要基于类的前提下去定义
类的实例化:比较重要的东西
举例
在这里jige就是对象,把类的属性加在鸡哥的身上
每次调用类的时候,一定要先实例化,赋予个对象,要不不行,一定要有对象!有对象!
构造方法:
类名有一个__init__()的特殊方法(构造方法),该方法在类实例化时会自动调用
当然__init__()方法可以有参数,参数通过__init__()传递到类的实例化上
用于初始化数据时候会使用
举个例子:
我在执行实例化的时候,他就会自动执行这个方法,而且是最先的调用
接下来我们来简单介绍一下关于类的知识点
类的属性:
类属性:相当于全局变量,实例对象共有的属性
举个例子:比如把人类设定成一个类属性的话,那么所有人类共有的属性就是类属性
比如:正常人都有五官,都会走路,都需要呼吸等
实例属性:实例对象自己私有,只能通过对象来调用
举例:还是用人类来举例,一个人有一个技能,但是这个技能并不是所有人都会的
比如:我家哥哥会打篮球,会唱,会跳,还会rap,这些是他会的技能,但是这些技能并不是所有人都会的
所以当调用这些的时候,你要先调用哥哥,才能继续调用他技能,也就是实例属性。
内置属性:这个简单来了解一下就行
类名__dict__:类的属性(包含一个字典,由类的数据属性构成)
类名—__doc__:类的文档字符串
类名:__name__:类名
类名:__module__:类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__等于mymod)
类名:__bases__:类的所哟父类构成的元素(包含了一个由所有父类组成的元组)
类的方法:
实例方法:
使用def关键字来定义一个方法,与一般的函数定义不同,类方法必须包含参数self,且为第一个参数,
self代表的是类的实例,实例方法只能被实例对象调用
静态方法:
由@staticmethod装饰的方法,没有self这个参数,而将这个方法当成一个普通函数使用,可以被类或类
的实例对象调用
类方法:
由@classmethod装饰的方法,他的第一个参数不是self,而是cls,它代表这个类的本身,可以被类或类
的实例化对象调用
内置方法:指定的额方法名,去执行特定的业务
命名规则:__init__()这个就是内置方法,以两队下划线开始,以两下划线结束
__init__(self,...):构造方法,在生成对象时调用,可以用来进行一些初始化数据的操作,
不需要显示去调用,系统会默认执行
__del__(self):析构方法,在释放对象时调用,支持重载,可以在里面进行一些释放资源的操
作,不需要显示调用 #在整个代码执行完毕会自动调用
__str__(self,....):自定义实例输出方法,写好该方法后,替换实例默认的输出操作
__getattribute__(...):获取实例属性的值,可直接结合对象使用
其实类属性和类方法还有一个,叫做私有类属性/方法
私有类属性/方法:
私有属性:必须以双下划线开头,只能类内部才能够访问
私有方法::必须以双下划线开头,只能类内部才能够调用
简单吧,完活。
欢迎各位同学进行交流,栓Q!!!