继承

一个类继承另一个类时,将自动获得另一个类的所有属性和方法,原有的类称为父类,而新的类称为子类

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(f"This car has {self.odometer_reading}miles on it")def update_odometer(self,mileage):if mileage>self.odometer_reading:self.odometer_reading=mileageelse:print("You cannot roll back an odometer!")def increment_odometer(self,miles):self.odometer_reading+=milesclass ElectricCar(Car):def __init__(self,make,model,year):super().__init__(make,model,year)#初始化子类特有的属性self.battery_size=75#添加子类特有的方法def describe_battery(self):print(f"This car has {self.battery_size}kwh battery")my_tesla=ElectricCar('tesla','models',2019)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()# #super()是一个特殊的函数,让你能够调用父类的方法
#2019 Tesla Models
#This car has 75kwh battery

#练习9-6

class Restaurant():"""docstring for Restaurant"""def __init__(self, restaurant_name,cuisine_type):self.restaurant_name=restaurant_nameself.cuisine_type=cuisine_typeself.number_served=0def describe_restaurant(self):print(f"名字是:{self.restaurant_name},烹饪风味是{self.cuisine_type},有{self.number_served}人就餐")def open_restaurant(self):print(f"{self.restaurant_name}餐厅正在营业")def set_number_served(self,number):self.number_served=numberdef increment_number_served(self,inumber):self.number_served+=inumberclass IceCreamStand(Restaurant):def __init__(self,restaurant_name,cuisine_type):super().__init__(restaurant_name,cuisine_type)self.flavors=['蓝莓味','草莓味','橘子味']def describe_iceCream(self):print(f"这里的冰淇凌有:{self.flavors}")the_restaurant=IceCreamStand('十里八湘','川菜馆')
the_restaurant.set_number_served(16)
the_restaurant.describe_restaurant()
the_restaurant.increment_number_served(10)
the_restaurant.describe_restaurant()
the_restaurant.describe_iceCream()"""
名字是:十里八湘,烹饪风味是川菜馆,有16人就餐
名字是:十里八湘,烹饪风味是川菜馆,有26人就餐
这里的冰淇凌有:['蓝莓味', '草莓味', '橘子味']
"""

#练习9-7

class User:def __init__(self,first_name,last_name,gender,login_attempts):self.first_name=first_nameself.last_name=last_nameself.gender=genderself.login_attempts=login_attemptsdef describe_user(self):print(f"姓:{self.first_name},名:{self.last_name},性别:{self.gender}")def greet_user(self):print(f"欢迎{self.first_name}{self.last_name}{self.gender}士!!!")def increment_login_attempts(self):self.login_attempts+=1print(f"现有人数{self.login_attempts}")def reset_login_attempts(self):self.login_attempts=0print(f"现有人数{self.login_attempts}")class Admin(User):def __init__(self,first_name,last_name,gender,login_attempts):super().__init__(first_name,last_name,gender,login_attempts)self.privileges=['can add post','can delete post','can be user']def show_privileges(self):print(f"Admin用户的权限有:{self.privileges}")user1=Admin('王','飞','男',1)
user1.describe_user()
user1.increment_login_attempts()
user1.increment_login_attempts()
user1.reset_login_attempts()
user1.greet_user()
user1.show_privileges()"""
姓:王,名:飞,性别:男
现有人数2
现有人数3
现有人数0
欢迎王飞男士!!!
Admin用户的权限有:['can add post', 'can delete post', 'can be user']
"""

python标准库

#生成1-6之间的随机数
from random import randint
print(randint(1,6))

列表中随便选一个

from random import choice
players=['李小龙','甄子丹','李连杰','成龙']
print(choice(players))

#练习9-13

from random import randint
class Die(object):def __init__(self,sides=6):self.sides=sidesdef roll_die(self):return randint(1,self.sides)d6=Die(6)
results=[]
for roll_num in range(10):result=d6.roll_die()results.append(result)
print("6面10次的筛子结果:")
print(results)d10=Die(10)
results=[]
for roll_num in range(10):result=d10.roll_die()results.append(result)
print("10面10次的筛子结果:")
print(results)d20=Die(20)
results=[]
for roll_num in range(10):result=d20.roll_die()results.append(result)
print("20面10次的筛子结果:")
print(results)"""
6面10次的筛子结果:
[4, 2, 6, 3, 2, 3, 1, 2, 6, 1]
10面10次的筛子结果:
[2, 4, 4, 9, 10, 6, 8, 5, 2, 6]
20面10次的筛子结果:
[16, 13, 3, 14, 17, 7, 1, 19, 3, 16]
"""


python编程 从入门到实践 第九章 类(下)相关推荐

  1. python编程从入门到实践第九章——类

    相关文章链接: python编程从入门到实践第二章--变量和简单数据类型 python编程从入门到实践第三章--列表简介 python编程从入门到实践第四章--操作列表 python编程从入门到实践第 ...

  2. python编程 从入门到实践 第九章 类(上)

    类中的函数称为方法 class Dog:def __init__(self,name,age):"""初始化name和age"""self. ...

  3. python编程从入门到实践django-第18章 Django入门 P371

    声音简介-感谢粉丝NN娜娜小天使的打赏,此音频即日起以24小时/天,1次/小时的速度更新,直至完结~ 特别说明: 此音频仅作为更好地阅读此书的辅助工具,请大家购买正版书籍. 所有音频全部免费供大家试听 ...

  4. 学习笔记 | Python编程从入门到实践 | 第二章变量和简单数据类型

    前言 小白记录自己学习python的学习贴,如有错误请大佬指正 第二章是变量和简单数据类型的学习. 关于变量 在程序中随时可以修改变量的值,python将始终记录变量的最新值 变量名只能包含字母.数字 ...

  5. Python编程:从入门到实践-第二章:变量和简单数据(语法)

    #2-1 简单消息:将一条消息存储到变量中,再将其打印出来. bian='Hello Python' print(bian) #2-2 多条简单消息:将一条消息存储到变量中,将其打印出来:再将变量的值 ...

  6. python编程从入门到实践17章使用API;17.3Hacker News API的调用

    https://hacker-news.firebaseio.com/v0/topstories.json,但是我打不开,要翻墙吗.抄的程序 import requests from operator ...

  7. python编程从入门到实践日记day13-青鬆下的ミ坚躯 的个人博客

    工具/原料计算机Linux操作系统方法/步骤方法一,查看配置文件,输入命令cat /etc/resolv.conf,从结构中可以看到DNS是180.76.76.76,备用DNS是114.114.114 ...

  8. python基础学习[python编程从入门到实践读书笔记(连载五)]:数据可视化项目第16章

    文章目录 下载数据 制作全球地震散点图:JSON格式 end 几个实验结果: 每日最高气温: 地震图绘制: 下载数据 CSV文件格式 在文本文件中存储数据,一个简单方式是将数据作为一系列以逗号分隔的值 ...

  9. 《Python编程从入门到实践》记录之第2章 变量和简单数据类型总结(思维导图)

    <Python编程从入门到实践>第2章变量和简单数据类型知识总结:

最新文章

  1. Java访问控制修饰符作用域
  2. 计算机网络第七章:网络安全
  3. python教程:函数递归与生成器教程
  4. 常用的函数式接口_Consumer接口
  5. Android开发之在Fragment和Activity页面拍照需要注意的地方
  6. JUnit和Mockito合作
  7. hp服务器 新增硬盘_HP服务器linux操作系统如何添加硬盘
  8. ECCV 2020 | 空间-角度信息交互的光场图像超分辨,性能优异代码已开源
  9. 安卓登录以及会话保持的解决方案
  10. Linux指令:tar打包与压缩
  11. Git学习总结(13)——使用git.oschina作为自己的源代码在线管理库
  12. 未解决:火狐浏览器提示不安全的链接
  13. ping命令两种返回信息的区别
  14. 5G布控球星光级400万高清布控球智能布控球
  15. Html跳转页面时,URL传值-获取
  16. C语言输出大写金额,编程实现,输入一个人民币小写金额值,转化为大写金额值输出。先实现基本功能...
  17. ubuntu20.04下编译仿真智能车racecar的错误解决汇总
  18. IK分词器原理研磨及源码改造,更适用生产
  19. 权限管理模型 ---- ACL、RBAC和ABAC(详解)
  20. AC自动机——棋局定式

热门文章

  1. h264基本编码参数
  2. Shell - timeout命令
  3. 2020部队技术干部计算机等级考试,带你了解专业技术军官
  4. 操作系统笔记(二):进程和线程
  5. CoreDNS 的插件使用说明
  6. 数据全量、增量、比较更新
  7. 单枪匹马的英雄是否还有用武之地?
  8. Python的numpy库中rand(),randn(),randint(),random_integers()等random系函数的使用
  9. JAVA开发与运维(JavaWeb测试环境搭建)
  10. 【MySQL】数据库介绍以及MySQL数据库