一、概念:
类:类代表了具有相同特征的一类事物(人类)
对象/实例:具体的某一个事物或者是人(具体到某一个人)
实例化:将类变成对象的这么一个过程,即新建一个对象的过程,就是对类的一个实例化过程。(人类是一种生物类型,某个人是实例化人类,也就是某个人是人类的对象)
二、类的表达式:
格式:
class Person:
pass
注意:
1、以class开头来定义一个类
2、类名命名规则:可由数字字母下划线组成 不能以数字开头 首字母大写 驼峰命名
3、python3+版本中已经不需要在在类后加上object,那是python2的用法,例如:class Person(object)
三、类属性与类方法:
python的类里包括类属性和类方法
class Person:
#类属性
person_year = 11
#类方法
def Run(self):
print("run")
注意:类方法里的self 是固定占坑符号,又代表实例本身,类里面的方法都会有self,实例化对象的时候,对象是谁,self就是谁
四、创建对象:
对象实例化也称为创建对象
格式:实例 = 类名() 是可以调用类里面的任意函数
调用属性: 实例.属性名
调用方法: 实例.方法名()
类属性:类方法可以用类名直接调用,不需要实例化来调用
# 定义一个Person的类
class Person:
#name为类属性
name = "小明"
def (self):
print("run")
# 创建一个p对象
p = Person()
print(p.name) # 调用对象的属性,结果为小明
p.run() # 调用对象的方法,结果为run
四、类方法分类:
类里面方法是分为三种
1、实例方法: (self) 只能给对象调用,需要穿件对象才能用起来,类直接调用是用不了的
class Person:
def 实例方法名(self):
pass
Person().实例方法名()
2、类方法: @classmethod (cls)不用实例来调用方法
类方法是所有实例的共性,是类里面公用的,cls-代表当前类,类方法可以用类名直接调用,不需要实例化来调用
class Person:
@classmethod
def 类方法名(cls):
print(1)
Person.类方法名() # 结果为1
3、静态方法: @staticmethod (普通方法) 没有必然的参数类或者对象关系,只不过它放在类里面,一般给类自己用的,用于类里面的某些方法,提供方法支持
class Person:
@staticmethod
def 静态方法名():
print(1)
def test(self):
静态方法名()
五、实例方法/类方法/静态方法的区别:
相同点: 实例方法/类方法/静态方法, 实例和类名都可以直接调用
不同点: 静态方法 和类方法 不可以调用类里面的属性值 如果要参数 需自己传递参数
什么时候去定义静态和类方法: 当你的某个函数与其他的类函数和类属性没有关系
初始化函数使用: 如果某个属性值是多个函数公用的 就可以使用初始化函数 没有return