pass 关键字作用 :
pass 是一个空语句 , 表示什么都不做 ,
该语句只起占位符作用 , 用于在编写代码时占一个位置 ,
将来再补充具体的代码实现 ;
pass 关键字使用场景 :
如果定义一个类 , 只写一个类名 , 其它的成员继承自别的类 ,
类中暂时没有成员要写 , 但是语法要求类下面必须写内容 ,
此时使用 pass 作为类的语句即可 , 保证在编译时 , 语法检查不报错 ;
下面的代码中 , 定义一个 Dog 类 , 只是单纯的继承 Animal 和 Walk 两个类 , 但是如果不写类内容 , 编译时报错 :
Indent expected
同理 , 函数也是 , 我们只定义 函数名称 与 参数列表 , 返回值 , 不想实现函数体 , 也可以使用 pass 关键字 , 如果不写函数内容 , 也会报上述错误 ;
使用 pass 关键字完整代码示例 :
"""
pass 关键字 代码示例
"""
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def make_sound(self):
pass
class Walk:
def walk(self):
print("走路")
class Dog(Animal, Walk):
pass
dog = Dog("大黄", 2)
print(dog.name)
print(dog.age)
dog.walk()
执行结果 :
D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
大黄
2
走路
Process finished with exit code 0
在 多继承 中 , 如果多个父类 , 有相同名称的成员 , 那么按照 从左到右 的继承顺序作为 优先级 ;
多继承中 , 写在左侧的 父类 优先级高 , 写在右侧的 父类 优先级低 ;
多继承中 , 先写的保留 , 后写的无效 ;
在下面的代码中 , 两个父类 Animal 和 Walk 中都定义了 walk 成员方法 ;
在 Dog 类中 , 先继承了 Animal , 后继承了 Walk , 那么调用 Dog 实例对象的 walk 方法时 , 执行的是 Animal 的方法 ;
class Dog(Animal, Walk):
pass
在 Dog2 类中 , 先继承了 Walk , 后继承了 Animal , 那么调用 Dog 实例对象的 walk 方法时 , 执行的是 Walk 的方法 ;
class Dog2(Walk, Animal):
pass
代码示例 :
"""
pass 关键字 代码示例
"""
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def walk(self):
print("动物走路")
class Walk:
def walk(self):
print("走路")
class Dog(Animal, Walk):
pass
class Dog2(Walk, Animal):
pass
dog = Dog("大黄", 2)
dog.walk()
dog2 = Dog2("大黄", 2)
dog2.walk()
执行结果 :
D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
动物走路
走路
Process finished with exit code 0