一、创建和使用类
1.类的作用:类将函数和数据整洁地封装起来,从而让我们能够高效地使用它们。
2.创建类的步骤以及相关知识介绍:
class Dog:
"""进行一次小狗的简单模拟"""
def__init__(self, name, age):
"""初始化属性"""
self.name = name
self.age = age
def sit():
"""模拟小狗收到命令时蹲下"""
print(f"{self.name} is now sitting.")
def roll_over():
"""模拟小狗收到命令时打滚"""
print(f"{self.name} rolled over!")
my_dog = Dog('Willam', 12)
my_dog.name
my_dog.sit()
(1)使用class提醒Python正在创建一个类,类的命名应采用驼峰命名法,如果从空白创建类而不使用继承的方法,类的名称后面不用添加括号
(2)编写一个文档字符串,对类的功能进行一个简要说明
(3)定义方法__init__():必不可少
【1】首先要知道一个知识点:类中的函数都称为方法
【2】注意事项:该方法前后一定要加上两个下划线,不要只加一个,方法括号内的形参一定要包括self,后续定义的所有方法都一样,也必须要包括形参self。
【3】__init__()方法的主要功能在于初始化属性,在初始化属性过程中,如果有想要在整个类中都使用的变量可在其名称前面加上前缀self
3.有关类的基本操作
(1)根据类创建实例
(2)使用句点表示法访问属性:注意在访问属性时,如果属性加上了前缀self,访问时也无需把self写出来,直接写单纯的变量名即可
(3)使用句点表示法调用方法
二、使用类和实例
1.给属性设定默认值:如果属性无须通过形参来定义时,可在方法__init__()中为其指定默认值
2.修改属性中的值
class Car:
"""进行一次汽车的简单模拟"""
def __init__(self, make, model, year):
"""初始化汽车的属性"""
self.make = make
self.model = model
self.year = year
self.odomter_reading = 0
def get_descriptive_name(self):
"""返回整洁的描述性信息"""
long_name = f"{self.year} {self.make} {self.model}"
return long_name
def read_odometer(self):
"""打印一条指出汽车里程的信息"""
print(f"This car has {self.odomter_reading} miles on it.")
def update_odemeter(self, mileage):
"""将里程表中的读数设定为指定的值"""
if mileage >= self.odomter_reading:
self.odomter_reading = mileage
def increment_odemeter(self, miles):
"""将里程表读数增加指定的值"""
self.odomter_reading += miles
my_car = Car('audi', 'a4', '2019')
my_car.odomter_reading = 1
my_car.update_odemeter(100)
my_car.increment_odemeter(100)
(1)直接修改属性中的值:使用句点访问法直接访问属性并对其赋予新值
(2)通过方法进行修改
(3)通过方法对属性的值进行递增
三、继承
1.有关继承的简要说明:在编写类时并非总是要从继承开始。如果编写的类是另一个现成的类的特殊版本时,可以使用继承。一个类继承另一个类时,将自动获得另一个类的所有属性和方法。原有的类称为父类,而新的类称为子类。
2.继承的有关步骤及相关说明:
(1)创建子类时,父类必须包含在当前的文件中,且位于子类的前面
(2)定义子类时,必须在子类的圆括号内指定父类的名称
(3)使用方法__init__()初始化父类的属性
(4)使用函数super调用父类的方法
(5)给子类定义属性和方法
(6)重写父类的方法:如果父类的方法,不完全符合子类模拟实物的行为。可以通过在子类中重新定义一个与父类要重写方法同名的方法
(7)可以使用某个独立的类作为实例,并将其用作其他类的属性
class Car:
--snip--
class Battery:
"""一次模拟电瓶的简单尝试"""
def __init__(self, battery_size = 75):
"""初始化电瓶的属性"""
self.battery_size = battery_size
def describe_battery(self):
"""打印一条描述电瓶容量的信息"""
print(f"This car has a {self.battery_size}-kwh battery.")
def get_range(self):
"""打印一条信息,指出电瓶的续航里程。"""
if self.battery_size == 75:
range = 260
elif self.battery_size == 100:
range = 315
print(range)
def upgrade_battery(self):
"""更新电瓶容量"""
if self.battery_size != 100:
self.battery_size = 100
class EletricCar(Car):
"""电动汽车的独特之处"""
def __init__(self, make, model, year):
super().__init__(make, model, year)
self.battery = Battery()
四、Python标准库
1.基本认识:Python标准库是一组模块,我们安装的Python都包含它
2.例如random模块,如randint()和choice()函数,randint()函数时将两个整数作为参数,并随机返回一个位于这两个整数之间(含该整数)的整数;choice()函数将一个列表或元组作为一个参数,并随机返回其中的一个元素
五、类编码风格
1.类名应采用驼峰命名法,即将类名中的每个单词的首字母都大写,都不使用下划线。实例和模块名都采用小写格式,并在单词之间加上下划线(函数也是一样)
2.对于每一个类,都应紧跟在类的定义后面包含一个文档字符串
3.可使用空行来组织代码,但不要滥用。在类中,可使用一个空行来分隔方法;在模块中,可使用两个空行来分割类
4.需要同时导入标准库中的模块和自己编写的模块时,需先编写导入标准库中的import语句,再添加一个空行,然后编写导入自己编写的模块的import语句。(注意:所有的import语句都应放在文件的开头)