定义:
- 必须使用class关键字
- 类名必须是用大驼峰命名
- 类定义完成后,就会产生一个类对象,绑定到了标识符ClassName上
class ClassName: 语句块
举例:
class MyClass:
"""A example class"""
x = 'abc'#类属性
def foo(self):#类属性foo,也是方法
return 'My Class'
print(MyClass.x)
print(MyClass.foo)
print(MyClass.__doc__)
类对象及类属性
- 类对象,类的定义执行后会生成一个类对象
- 类属性,类定义中的变量和类中定义的方法都是类的属性
- 类变量,上列中x是类MyClass的变量
MyClass中,x,foo都是类的属性,__doc__也是累的特殊属性
foo是方法method,本质上就是普通的函数对象function,它一般要求至少有一个参数,第一个形参可以是self(self至少个惯用标识符,可以换名字),这个参数位置就留给了self。
self指代当前实例本身
实例化
a = MyClass() # 这就是实例化
使用上面的语法,在类对象名称后面加上一个括号,就调用类的实例化方法,完成实例化。实例化就真正创建一个该类的对象(实例)
tom = Person()
jerry = Person()
上面的tom、jerry都是Person类的实例,通过实例化生成了2个实例。
每次实例化后获得的实例,是不同的实例,即使是使用同样的参数实例化,也得到不一样的对象。
Python类实例化后,会自动调用__init__方法。这个方法第一个形式参数必须留给self,其它参数随意
init__方法:MyClass()实际上调用的是__init(self)方法,可以不定义,如果没有定义会在实例化后隐式调用。作用:对实例进行初始化
初始化函数可以多个参数,请注意第一个位置必须是self,例如 init(self, name, age)
注意:init()方法不能有返回值,也就是只能是return None
实例对象instance
- 类实例化后一定会获得一个类的实例,就是实例对象,上面的tom,jerry就是Person类的实例
- __init__方法的第一个参数seld就是指代某一个实例自身
- 类实例化后,得到一个实例对象,调用方法采用jerry.showage()的方式实例对象会绑定到方法上,但是函数签名是showage(self),不能少传参数
- self.name就是jerry对象的name, name是保存在jerry对象上,而不是Person类上,所以称为实例变量self
类变量和实例变量:实例变量是每一个实例自己的变量,是自己独有的;类变量是类的变量,是类的所有实例共享的属性和方法
class Person:
a = 2 # 类变量
def __init__(self,name):
self.name = name # 实例变量