一、初始化

  • 初始化函数:每一个实例
  • def __init__(self):
  • 1:他跟普通函数一样,有关键字self
  • 2: 他可以带位置参数,默认参数
  • 3: 他没有返回值
  • 4:他的作用:每一个实例创建的时候,都会自动带上一个init函数里的参数
  • 5:提高复用性(不要写死,可定制)
class User:def __init__(self, name, content): # 创建实例的时候,定义初始化的一些属性值self.name = nameself.content = contentdef describe_user(self):print("该用户的名字为:", self.name)def greet_user(self):# 个性化问候print(self.content, self.name)user_01 = User('natu','我好喜欢你啊')
user_01.greet_user()

  • 注意:当这个类必须具备某些属性,就放到初始化__init__(self)中去

二、继承

  • 继承: 全部继承 部分继承 多继承 超继承
    import from...import 类与模块  
  • 全继承:用的比较少
class User:def __init__(self, name, content): # 创建实例的时候,定义初始化的一些属性值self.name = nameself.content = contentdef describe_user(self):print("该用户的名字为:", self.name)def greet_user(self):# 个性化问候print(self.content, self.name)# 这就是我们的测试程序的入口
if __name__ == '__main__': #python 程序的入口user_01 = User('natu', '我好喜欢你啊')user_01.greet_user()控制台输出:
我好喜欢你啊 natu

#全部继承
# 导入类
#import untitled.class_day08.tast_01    #第一种导入:直接导入模块(如果该模块中没有程序入口函数则会运行当前模块)
from untitled.class_day08.tast_01 import User # 具体到类名class SuperUser(User): # 完全继承 全部继承passqq = SuperUser('那年那兔那些事儿', '老子就是喜欢你:')
qq.greet_user()控制台输出:
老子就是喜欢你: 那年那兔那

super是关键字:根据传进来的类,找到父类,再去调用父类里面的方法

下面是我创建的一个类:

class Restaurant:def __init__(self, restaurant_name, cooking_type):self.restaurant_name = restaurant_nameself.cooking_type = cooking_typedef describe_restaurant(self):print(self.restaurant_name + "的营业范围是:" + self.cooking_type)def open_restaurant(self):print(self.restaurant_name + "该餐馆正在营业中")

# 继承Restaurant
from day.class_day07.test_01 import Restaurantclass SubRestaurant(Restaurant):def __init__(self, restaurant_name, cooking_type, discounts, pay_moneys):super(SubRestaurant, self).__init__(restaurant_name, cooking_type)self.discounts = discountsself.pay_moneys = pay_moneysdef discount(self):print(self.restaurant_name + "的折扣为:" + self.discounts)def pay_money(self):print("最终支付价格为:%s" % self.pay_moneys)

# 超继承(SubRestaurant)
from day.class_day07.test_02 import SubRestaurantclass SuperRestaurant(SubRestaurant):def __init__(self, restaurant_name, cooking_type, discounts, pay_moneys, contents):SubRestaurant.__init__(self, restaurant_name, cooking_type, discounts, pay_moneys)self.content = contentsdef open_restaurant(self):print("优惠信息宣传:" + self.content)if __name__ == '__main__':restaurant_2 = SuperRestaurant("眼镜米线", '米线、米粉、酸辣粉、混沌', '9折', 126, '新店开张全面优惠呢,打9折,更多惊喜送不停')restaurant_2.describe_restaurant()restaurant_2.open_restaurant()restaurant_2.discount()restaurant_2.pay_money()

转载于:https://www.cnblogs.com/Rosay9204781/p/9173821.html

python.day.10——面向对象(二)相关推荐

  1. python学习之面向对象(二)

    6.2 类的空间角度研究类 6.2.1 添加对象属性 [总结]对象的属性不仅可以在__init__里面添加,还可以在类的其他方法或者类的外面添加. class A:address = '召唤师峡谷'd ...

  2. 笔记37 笨办法学python练习43面向对象OOP的游戏代码(二)代码的反复理解

    笔记37 笨办法学python练习43面向对象OOP的游戏代码(二)代码的反复理解 连续贴着这个练习43的代码折腾了整整两天,把那些英文文本翻译为中文文本,重新装进这个代码之中.本想一段一段的运行,发 ...

  3. Python Day 21 面向对象 (面向对象的三大特性(二)继承,多态,封装,几个装饰器函数)...

    Python Day 21 面向对象 (面向对象的三大特性(二)继承,多态,封装,几个装饰器函数) https://mubu.com/doc/1AqL_M0IbW 继承之钻石继承 多态 封装 几个装饰 ...

  4. Python面向对象二 封装与修饰器

    Python面向对象二 封装与修饰器 1. 特殊方法 2. 封装 2.1 封装的引入 2.2 封装实例一 2.3 封装实例二 3. property装饰器 1. 特殊方法 • 在类中可以定义一些特殊方 ...

  5. 【Python基础】面向对象封装 案例(二)

    目录 案例二 1.首先开发 枪类 2.接着开发 士兵类 3.开发 开火类. 案例一在这里: [Python基础]面向对象封装 案例(一) 案例二 仍然是一步一步开发.同时,下面的第3小步是完整代码,亦 ...

  6. python小游戏之二

    20行python代码的入门级小游戏 20行python代码的入门级小游戏_linmo8256的博客-CSDN博客_py游戏代码 猜数字小游戏python实现(可用来撩妹撩汉) 猜数字小游戏pytho ...

  7. python如何初始化对象数组_如何理解Python中的面向对象编程?

    (由Python大本营付费下载自视觉中国) 作者 | Radek Fabisiak 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 现如今面向对象编程的使用非常广泛,本文 ...

  8. Python 3.10新增软关键字实现真正意义上的多分支选择结构

    推荐教材: <Python程序设计基础与应用(第2版)>(微课版)(ISBN:978-7-111-69670-4),机械工业出版社,2022年1月出版.面向新工科高等院校大数据专业系列教材 ...

  9. [转载] python基础:面向对象-封装

    参考链接: Python中的面向对象编程2(数据隐藏和对象打印) 文章目录 1.封装的含义2.封装示例1.python中封装功能的实现 3.封装的好处1.封装数据2.降低复杂度 4.封装的特性1.@p ...

最新文章

  1. 【OpenCV】cv::VideoCapture 多线程测试
  2. J2EE项目移植问题一
  3. PHP创建XML文件讲解
  4. GitHub是如何征服Google、微软和其它公司的
  5. 从零开始学android开发-IDE空间不够报错
  6. linux搭建vsftp服务器_Linux安装配置vsftp搭建FTP的详细配置
  7. LeetCode 834. 树中距离之和(树上DP)*
  8. java 获取组件大小_java - 如何初始化取决于组件大小的图像抓取? - 堆栈内存溢出...
  9. 如何在ANSYS 2022R1版本中使用SCDM
  10. 企业邮箱安全中心在哪里,TOM邮箱安全设置中心
  11. Java体系知识之ElementUI
  12. 什么是信息流?如何投放信息流广告?如何收费?
  13. 【c语言】—求最大公约数和最小公倍数多种方法
  14. 第四章第六节数据资产盘点-系统现状调研情况
  15. mysql jdbc驱动 批量更新_jdbc批量插入,删除,更新
  16. vss服务器的简单使用
  17. 如何实现水泥窑分散点信号集中控制?
  18. Spark与Iceberg整合查询操作-查询快照,表历史,data files Manifests 查询快照,时间戳数据...
  19. 2019神舟质量_2019质量周
  20. 好好写简历吧!这简历一看就是包装的!!

热门文章

  1. 不要过高估计SDN的能力,也善于发现SDN技术的缺陷之美
  2. gdb调试 print打印不出变量值或者不准确
  3. 链接被点击的默认行为——带到另一个窗口
  4. Cisco ACL 一例
  5. 超实用 Linux下通过VNC安装Oracle
  6. LOJ#510. 「LibreOJ NOI Round #1」北校门外的回忆(线段树)
  7. 简单备忘一下Linux下的wget和curl如何使用http proxy
  8. 自定义定时器的一点总结
  9. 柯西不是你 - 杨宗纬
  10. 青藤云安全张福:我们可以用“免疫系统”对抗黑客入侵吗?