类和对象
Python是一种面向对象的语言。
Python一切皆是对象,比如:3、5、21这三个整数都是“对象”,而它们有共同的“模板”——它们都是 int 型数据,"int" 就是一个类。
可以理解,用相同的模板(类)生成的对象,会在各个方面非常相似。
创建自己的类
创建类用 class 关键字。如:
class Student:
name = "张三"
创建对象
下例创建一个 Student 类的对象
stu = Student() # 创建对象
print(stu.name) # 输出对象的 name 值
运行输出:
张三
这个类只是一个最简单的形式,在实际中,它毫无用处。
使用 __init__() 函数
__init__函数在创建对象时会自动调用。
class Student:
def __init__(self, name, sex, age):
# 此类三个属性:name、sex和age
self.name = name
self.sex = sex
self.age = age
stu = Student("张三", "男", 17) # 创建对象时自动调用__init__()函数
# 传入参数以初始化类属性
# self参数代表当前实例,不需要传入参数
print(stu.name, stu.sex, stu.age) # 输出stu的三个属性
运行效果如下:
张三 男 17
为类添加方法
在上例基础上,添加show()方法,如下:
class Student:
def __init__(self, name, sex, age):
self.name = name
self.sex = sex
self.age = age
def show(self):
# 添加show()方法用来显示对象的信息。
print("My name is {}, sex is {}, {} years old.".format(self.name, self.sex, self.age))
stu1 = Student("张三", "男", 17)
stu2 = Student("花木兰","女",16)
stu1.show()
stu2.show()
运行结果如下:
My name is 张三, sex is 男, 17 years old.
My name is 花木兰, sex is 女, 16 years old.
大家看到,创建的俩个对象stu1和stu2都有各自的属性。
self参数
self参数指向当前对象。
在上例中的俩个对象stu1和stu2,使用stu1时,类中的self指向stu1;而在使用stu2对象时,self就是stu2。