一、类的定义
1、类和对象都是对现实生活中或程序中的内容的抽象,由两部分组成,数据(属性)和行为(方法)
# 尝试定义一个表示人的类
class Person :
# 在类的代码块中,我们可以定义变量和函数
# 在类中我们所定义的变量,将会称为所有的实例的公共属性
# 所有实例都可以访问这些变量
name = 'xz' # 公共属性,所有实例都可以访问
# 在类中也可以定义函数,类中的定义的函数,我们称之为方法
# 这些方法可以通过该类的所有实例来访问
def say_hello() :
print('你好!')
# 创建Person 的实例
p1 = Person()
p2 = Person()
print(p2.name)
# 调用方法,对象.方法名()
p1.sya_hello()
2、方法调用和函数调用的区别
- 如果是函数调用,则调用时传几个参数,就会有几个实参
- 但是如果是方法调用,默认传递一个参数,所以方法中至少要定义一个形参
3、在类的代码块中,可以定义变量和函数
- 变量会成为该类实例的公共属性,所有的该类实例都可以通过 对象.属性名 的形式访问
- 变量会成为该类实例的公共方法,所有的该类实例都可以通过 对象.方法名 的形式调用方法
4、实例为什么能访问到类中的属性和方法
(1)类中定义的属性和方法都是公共的,任何该类实例都可以访问
①属性和方法查找的流程
- 当我们调用一个对象的属性时,解析器会先在当前对象中寻找是否含有该属性
如果有,则直接返回当前的对象的属性值
如果没有,则去当前队形的类对象中去寻找,如果由则返回类对象的属性值
如果没有,则报错
②类对象和实例对象中都可以保存属性(方法)
- 如果这个属性(方法)是所有的实例共享的,则应该将其保存到类对象中
- 如果这个属性(方法)是某个实例独有,则应该保存到实例对象中