以学生类Student为例,定义类使用class关键字,格式为:
class Student(object): pass
class后面接着是类名,通常是首字母大写的单词,括号内的内容是该类的父类,表示该类是从哪个类继承下来的,如果没有合适的继承类,就写object,它是一切类的父类。
在定义类的时候,可以规定初始化数据,这些数据是创建实例时就会自动生成,实例就已经有这些属性,使用特殊方法
__init__,如初始化name,age两个属性:
class Student(object): def __init__(self, name, age): self.name = name self.score = age
和普通函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,它表示创建的实例本身,并且调用时不用传递self参数。因为self就是实例本身,所以在__init__函数内部,可以把各种属性进行初始化操作。
定义好了类,就可以创建实例对象了,创建实例是通过类名+()实现的:
>>> lily = Student()
>>> lily
<__main__.Student object at 0x0000003A914EBAC8>
创建实例后把实例赋值给了变量lily,后面的0x0000003A914EBAC8是内存地址。
可以自由的给实例变量绑定属性,直接赋值即可,比如直接给lily绑定一个score属性。
>>> lily.score = 50
>>> lily.score
50
在类内定义其他函数,可以直接访问实例的初始化变量,函数其他的参数正常传递即可:
def get_age(self): if self.age > 10: return '比10岁大' else: return '没有比10岁大'
stu = Student('lily', 5) print(stu.name, stu.get_age())
运行结果:
lily 没有比10岁大