访问国外网站速度慢,设计师工作内容,重庆永川网站建设,鸿顺里网站建设公司学习内容#xff1a;《python编程#xff1a;从入门到实践》第二版
知识点#xff1a;
类#xff0c;父类与子类的继承#xff0c;调用函数方法等。
练习内容#xff1a;
练习9-7#xff1a;管理员 管理员是一种特殊的用户。编写一个名为Admin的类#xff0c;让它继…学习内容《python编程从入门到实践》第二版
知识点
类父类与子类的继承调用函数方法等。
练习内容
练习9-7管理员 管理员是一种特殊的用户。编写一个名为Admin的类让它继承为完成练习9-3或练习9-5而编写的User类。添加一个名为privileges的属性用于存储一个由字符串如can add post、can delete post、can ban user等组成的列表。编写一个名为show_privileges()的方法显示管理员的权限。创建一个Admin实例并调用这个方法。
练习9-8权限 编写一个名为Privileges的类它只有一个属性privileges其中存储了练习9-7所述的字符串列表。将方法show_privileges()移到这个类中。在Admin类中将一个Privileges实例用作其属性。创建一个Admin实例并使用方法show_privileges()来显示其权限。
练习9-9电瓶升级 在本节最后一个electric_car.py版本中给Battery类添加一个名为upgrade_battery()的方法。该方法检查电瓶容量如果不是100就将其设置为100。创建一辆电瓶容量为默认值的电动汽车调用方法get_range()然后对电瓶进行升级并再次调用get_range()。你将看到这辆汽车的续航里程增加了。
我的代码运行结果
class User:def __init__(self,first_name,last_name,age,job):self.first_name first_nameself.last_name last_nameself.age ageself.job jobdef describe_user(self):print(f用户信息如下)print(f姓名{self.first_name} {self.last_name})print(f年龄{self.age})print(f职业{self.job})def greet_user(self):print(fHello, {self.first_name} {self.last_name}\n)class Admin(User):def __init__(self,first_name,last_name,age,job):super().__init__(first_name,last_name,age,job)def show_privileges(self):privileges [can add post,can delete post,can ban user]for privilege in privileges:print(fthe adminers privileges :{privilege})admin1 Admin(朱,大,10,学生)
admin1.describe_user()
admin1.greet_user()
admin1.show_privileges()练习
class User:def __init__(self,first_name,last_name,age,job):self.first_name first_nameself.last_name last_nameself.age ageself.job jobdef describe_user(self):print(f用户信息如下)print(f姓名{self.first_name} {self.last_name})print(f年龄{self.age})print(f职业{self.job})def greet_user(self):print(fHello, {self.first_name} {self.last_name}\n)class Privileges:def show_privileges(self):privileges [can add post,can delete post,can ban user]for privilege in privileges:print(fthe adminers privileges :{privilege})class Admin(User):def __init__(self,first_name,last_name,age,job):super().__init__(first_name,last_name,age,job)self.privileges Privileges()admin1 Admin(朱,大,10,学生)
admin1.describe_user()
admin1.greet_user()
admin1.privileges.show_privileges()练习
class Car:一次模拟汽车的简单尝试。def __init__(self,make,model,year):self.make makeself.model modelself.year yearself.odometer_reading 0def get_descriptive_name(self):long_name f{self.year} {self.make} {self.model}return long_name.title()def read_odometer(self):print(fThis car has {self.odometer_reading} miles on it.)def update_odometer(self,mileage):if mileage self.odometer_reading:self.odometer_reading mileageelse:print(You cant roll back an odometer!)def increment_odometer(self,miles):self.odometer_reading milesclass Battery:def __init__(self,battery_size90):self.battery_size battery_sizedef describe_battery(self):print(fThis car has a {self.battery_size}-kWh battery.)def upgrade_battery(self):if self.battery_size ! 100:self.battery_size 100#print(fThis car has updated, with a {self.battery_size}-kWh battery.)class ElectricCar(Car):def __init__(self,make,model,year):super().__init__(make,model,year)self.battery Battery()#注意这里的self.battery 和class battery里面的self.battery_size弄混淆了my_tesla ElectricCar(tesla,model s,2019)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
my_tesla.battery.upgrade_battery()my_tesla.battery.describe_battery() 总结问题
1.每一个类里面的属性名字切记不能混淆
2.def __init__(self,battery_size90)新增属性的原始值可在定义的时候给出可以先不写出
3.super().__init__(make,model,year)继承时什么时候有selfsuper后的等细节容易错
4.self.battery Battery()子类和某一特性单独建立的类之间一定不能忘记这部分联系。
5.my_tesla.battery.describe_battery()调用函数时不能忘记中间需要加上类的名字再加点。后在加方法。
6.是等于、赋值等于是比较是比较