目录
8.1、创建类和使用类
8.1.1、类的特性
- Python 中首字母大写的名称一般指类,类的实例不必
- 类中可以包含变量、函数
- 可以向类传递参数,实例中函数以方法的方式调用执行
- 类的定义使用class,在Python 2.7 中在括号中包含object
- 对于子类,括号中指定其父类
class fa_class_name():
[省略]
class so_class_name(fa_class_name):
[省略]
8.1.2、创建一个简单的类
- 创建一个Dog 类
#示例1
#代码
class Dog():
def __init__(self, name, age):
self.name = name
self.age = age
def sit(self):
print(self.name.title() + " is now sitting.")
def show_age(self):
age_message = self.name.title() + " are " + str(self.age) + " years old."
print(age_message)
def change_age(self, age):
self.age = age
my_dog = Dog("Bibi", 2)
my_dog.sit()
my_dog.show_age()
print(my_dog.age)
my_dog.change_age(4)
my_dog.show_age()
#输出
Bibi is now sitting.
Bibi are 2 years old.
2
Bibi are 4 years old.
- 说明:
8.1.3、类中的方法
- 对于类的声明,其中函数参数可以设定默认值,如同普通函数一般
- 修改类的实例中的变量(属性),可以直接通过"." 方法访问并修改,也可以通过类中的方法(函数)修改
8.2、继承
8.2.1、子类与父类
- 定义子类时,必须在括号中包含父类的名称
- 定义子类时,会从父类中获得所有方法,在子类中可不必声明父类所包含的方法
8.2.2、子类中的特点
- 因为子类继父类所有方法,子类定初始化时,需完成父类中参数的初始化
class fa_class_name():
[省略]
class so_class_name(fa_class_name):
def __init__(self, variable_name):
super().__init__(variable_name)
def extra_function_name():
[省略]
- super() 函数是一个特殊的函数,帮助子类与父类关联起来,父类也称超类(superclass)
- 子类能包含父类所没有包含的方法,可以直接在子类中定义
- 父类中的方法可以在继承时重写,即得到与父类不同的一个方法,只需将需要重写的方法重新定义一次
8.2.3、将类做类中的属性
- 类中所包含的属性,可以是变量,同时,也可以是类
8.3、导入类
8.3.1、导入单个类
- 将类的定义写在一个模块中, 像导入函数一样,将类导入,类的名称首字母大写
- 同样,也可在一个模块中定义多个类
8.3.2、从一个模块中导入多个类
- 导入多个类时,将类名以"," 分隔开
8.3.3、导入整个模块
- 导入整个模块后,其中类的调用同模块中的函数一样,使用"." 方法
import [模块名]
example = [模块名].class_name(variable_name)
- 导入模块中的所有类,方法同样与函数的导入相同