python编程从入门到实践第九章_第九章(python编程从入门到实践)
发布日期:2021-06-24 16:28:38 浏览次数:2 分类:技术文章

本文共 3504 字,大约阅读时间需要 11 分钟。

9-7 管理员 :

管理员是一种特殊的用户。 编写一个名为Admin 的类, 让它继承你为完成练习 9-3或练习 9-5而编写的User 类。 添加一个名为privileges 的属性, 用

于存储一个由字符串(如" can add post" 、 " can delete post" 、 " can ban user" 等) 组成的列表。 编写一个名为show_privileges( ) 的方法, 它

显示管理员的权限。 创建一个Admin 实例, 并调用这个方法。

classUser():def __init__(self,first_name,last_name):

self.first_name=first_name

self.last_name=last_namedefdescribe_user(self):print("\nFull name is" +self.first_name.title() + ' ' +self.last_name.title())defgreet_user(self):print("Hello," + self.first_name.title() + ' ' +self.last_name.title()+ '!')classAdmin(User):def __init__(self,first_name,last_name):

super().__init__(first_name,last_name)

self.privileges= ['can add post','can delete post','can ban user']defshow_privileges(self):print(self.first_name.title() + ' ' + self.last_name.title() + ' ' +self.privileges[0]+ '.')

admin_1= Admin('wang','wei')

admin_1.show_privileges()

9-8权限 : 编写一个名为Privileges 的类, 它只有一个属性——privileges , 其中存储了练习9-7 所说的字符串列表。 将方法show_privileges( ) 移到这

个类中。 在Admin 类中, 将一个Privileges 实例用作其属性。 创建一个Admin 实例, 并使用方法show_privileges( ) 来显示其权限。

classUser():def __init__(self,first_name,last_name):

self.first_name=first_name

self.last_name=last_namedefdescribe_user(self):print("\nFull name is" +self.first_name.title() + ' ' +self.last_name.title())defgreet_user(self):print("Hello," + self.first_name.title() + ' ' +self.last_name.title()+ '!')classPrivileges():

privileges= ['can add post','can delete post','can ban user']defshow_privileges(self):print(self.privileges)classAdmin(User):def __init__(self,first_name,last_name):

super().__init__(first_name,last_name)

self.privilege=Privileges()

admin_1= Admin('wang','wei')

admin_1.privilege.show_privileges()

9-9电瓶升级 : 在本节最后一个electric_car.py版本中, 给Battery 类添加一个名为upgrade_battery( ) 的方法。 这个方法检查电瓶容量, 如果它不是85, 就将它

设置为85。 创建一辆电瓶容量为默认值的电动汽车, 调用方法get_range( ) , 然后对电瓶进行升级, 并再次调用get_range( ) 。 你会看到这辆汽车的续航里程增

加了。

classCar():"""一次模拟汽车的简单尝试"""

def __init__(self,make,model,year):"""初始化描述汽车的属性"""self.make=make

self.model=model

self.year=year

self.odometer_reading=0defget_descriptive_name(self):"""返回整洁的描述性信息"""long_time= str(self.year) + ' ' + self.make + ' ' +self.modelreturnlong_time.title()defread_odometer(self):"""打印一条指出汽车里程的消息"""

print("This car has" + str(self.odometer_reading) + "miles on it.")defupdate_odometer(self,mileage):"""将里程表读数设置为指定的值

禁止将里程表读数往回调"""

if mileage >=self.odometer_reading:

self.odometer_reading=mileageelse:print("You can't roll back an odometer!")defincrement_odometer(self,miles):"""将里程表读数增加指定的值"""self.odometer_reading+=milesdeffill_gas_tank(self):print("come on!")classBattery():"""一次模拟汽车电瓶的简单尝试"""

def __init__(self,battery_size=70):"""初始化电瓶的属性"""self.battery_size=battery_sizedefdescribe_battery(self):"""打印一条描述电瓶容量的消息"""

print("This car has a" + str(self.battery_size) + "-kwh battery.")defget_range(self):"""打印一条消息,指出电瓶的续航里程"""

if self.battery_size == 70:

range= 240

elif self.battery_size == 85:

range= 270message= "This car can go approximately" +str(range)

message+= "miles on a full charge."

print(message)defupgrade_battery(self):if self.battery_size != 85:

self.battery_size= 85

classElectricCar(Car):"""电动汽车的独特之处"""

def __init__(self,make,model,year):"""初始化父类的属性"""super().__init__(make,model,year)

self.battery=Battery()deffill_gas_tank(self):print("This car doesn't need a gas tank!")

my_tesla= ElectricCar('tesla','model s',2016)print(my_tesla.get_descriptive_name())

my_tesla.battery.describe_battery()

my_tesla.battery.get_range()

my_tesla.battery.upgrade_battery()

my_tesla.battery.get_range()

转载地址:https://blog.csdn.net/weixin_33826897/article/details/113674910 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:smartbi和mysql_学不好报表分析?看看Smartbi报表工具的学习笔记吧!
下一篇:python流程控制函数_python学习笔记(二)流程控制 函数

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月09日 09时55分29秒