类(Class),类相当于一个模板。对象是类的实例。
# 类的创建以class关键字定义,类的名称以大写开头,后面接: class People(): pass
使用People类创建实例
chuck = People() # 打印输出chuck print(chuck) # 输出chuck的类型 print(type(chuck))
验证实例与类的关系
# 使用isinstance()函数检查一个对象是否是一个类的实例,返回True或者Flase result = isinstance(chuck,People) print(result)
现在创建的类中没有任何限制,没有属性和方法。
类中定义的变量就是类的属性,是类的公共属性,所有类实例都可以调用该类属性。
类中定义的函数就是类的方法,是类的公共属性,所有类实例都可以调用该类方法。
属性的定义
# 对People类进行修改 class People(): # 定义一个name属性 name = 'test' # 使用类创建实例并调用属性 wzs = People() print(wzs.name)
方法的定义
# 使用类创建实例并调用方法 class People(): # 定义一个方法,与定义函数的方法类似,在定义方法时必须有一个形参,否则会报错 def say_hello(self): print('我是类中的方法') # 创建实例并调用方法,与调用函数一致 lym = People() lym.say_hello()
实例对象属性和方法的查找顺序,先查找对象自身的属性和方法,有则返回,没有则查找类对象中的属性。
一般属性保存到实例对象中,方法保存到类对象中。
类对象中的方法的第一个形参一般是调用方法的对象本身,习惯设置为:self
类中的属性在类初始化时执行一次,init方法在每次创建对象时执行。
# __init__方法,特殊方法不需要自己调用 class People(): # 定义__init__,每次创建对象时调用 # 使用类创建对象时输入的实参会按顺序传递到init形参中 def __init__(self,name): # 通过self向新创建的对象初始化属性 self.name = name # 定义一个方法,与定义函数的方法类似,在定义方法时必须有一个形参,否则会报错 def say_hello(self): print('我是类中的方法') # 调用类创建对象 p1 = People('chuck')
类属性与方法的创建与使用流程
示例:
class Person(): def __init__(self,name): self.name = name def say_hello(self): print('大家好,我是%s'%self.name) p1 = Person('lym')