class Hotdog:

def __init__(self):  #初始化对象

        self.cooked_level = 0

        self.cooked_string ="Raw"

        self.condiments = [] #空数组

def __str__(self):  #print(对象)

        msg = "hot dog"

        if len (self.condiments) > 0 :

            msg = msg + " with"

        for i in self.condiments:

            msg = msg +" "+ i + ","

        msg = msg.strip(",")

        msg = self.cooked_string + " "+msg + "."+str(self.cooked_level)

        return msg

def cook (self,time):

self.cooked_level = self.cooked_level + time

if self.cooked_level > 8:

self.cooked_string = "Charcoal"

elif self.cooked_level > 5:

self.cooked_string = "Well_down"

elif self.cooked_level >=3:

self.cooked_string = "Medium"

else:

self.cooked_string = "Raw"

def addCondiment(self,condiments):

self.condiments.append(condiments)

myDog = Hotdog()

print (myDog)

print ("Cooking hot dog for 4 minutes...")

myDog.cook(4)

print (myDog)

print ("Cooking hot dog for 3 minutes...")

myDog.cook(3)

print (myDog)

print ("Cooking hot dog for 10 minutes...")

myDog.cook(10)

myDog.cooked_level=3 # 这些对象的属性都可以更改,不用通过方法,python 没有提供隐藏数据的方法,不过可以自己搞定。

print (myDog)

print ("Now I'm going to add some stuff on my hot dog")

myDog.addCondiment("ketchup")

myDog.addCondiment("mustard")

print (myDog)

设置私有变量和私有方法可以用__开头

class Person:

def __init__(self):

self.__name = "jixiang"

self.age = 22

def __get_name(self):

return self.__name

def get_name(self):

return self.__name

def get_age(self):

return self.age

def change_name(self):

self.__name = "malong"

return self.__name

def change_name1(self):

 self.__name = "jilong" #可以清楚的看到无论是私有属性还是私有方法在类内都可以使用。

        newname=self.__get_name()

return newname

person = Person()

print (person.get_age())

#print (person.__get_name())  #无论是私有变量还是私有方法都无法访问。

#print (person.__name)

person.__name ="lilong" #这里虽然没有报错,但是你看下面,打印出来依然没有改变

print (person.get_name())

person.change_name()

print (person.get_name())

person.change_name1()

print (person.get_name())

下面进入多态 ,

封装继承多态是面向对象的重要内容。

多态

本文转自 神迹难觅 51CTO博客,原文链接:http://blog.51cto.com/ji123/1965156,如需转载请自行联系原作者

python 第3天相关推荐

  1. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  2. 【实验楼】python简明教程

    ①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...

  3. 【Kaggle Learn】Python 5-8

    五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...

  4. 【Kaggle Learn】Python 1-4

    [Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...

  5. 使用python愉快地做高数线代题目~

    今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...

  6. python 位运算与等号_Python 运算符

    和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...

  7. python减小内存占用_如何将Python内存占用缩小20倍?

    当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...

  8. python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...

    本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...

  9. python程序如何执行死刑图片_如何判断对象已死

    已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...

  10. Python gRPC 安装

    1. 安装依赖库 sudo pip3 install grpcio sudo pip3 install protobuf sudo pip3 install grpcio_tools 2. 生成对应文 ...

最新文章

  1. 2.创建适合游戏的窗口和消息循环
  2. url能访问但new file()找不到文件_Go Web编程给自己写的服务器添加错误和访问日志...
  3. maven常识(列表更新中)
  4. 超轻简洁个人引导页网站源码
  5. 自己编写的C语言实时时钟代码
  6. matlab计算abc三相短路电流_不用到处问别人了,关于变压器的相关计算公式,都在这里!收藏好...
  7. 导数定义考法一网打尽
  8. Java 小Q 世界上最遥远的距离 解法二
  9. 3W 字 Docker 容器技术大科普
  10. 官方正式发布 Java 16
  11. 【Neo4j】SOLVED:java.lang.RuntimeException: Error starting Neo4j database server
  12. MBR30200FCT低压降肖特基二极管ASEMI原装
  13. 白杨SEO:微信视频号直播功能怎么开通?视频号有什么价值?
  14. 两个均匀分布相加、两个正态分布相加、由均匀分布生成正态分布
  15. linux文件系统层级结构标准
  16. R中设置图形参数--函数par()…
  17. 如何让应用出现在浏览器的分享列表中
  18. 神经网络阈值是什么意思,神经网络的权值矩阵
  19. matplotlib绘制3D图形时使x轴、y轴、z轴的比例相等
  20. 装饰者模式一染色馒头

热门文章

  1. XP时代的结束是阵痛还是真痛
  2. ulimit设置不生效?
  3. 谁与争锋-七款杀毒软件比较分析
  4. 因供应商遭不明网络攻击,丰田汽车宣布停产
  5. 奇安信代码安全实验室获授华为鲲鹏计算平台漏洞奖励计划合作伙伴
  6. 详述 Discord Desktop app RCE 挖洞经过,最后得$5000 + $300 (含 PoC 视频)
  7. DiskGenius无损调整C盘容量方法
  8. linux的增删改查、压缩与解压缩
  9. ElasticSearch 集群监控
  10. 每周一书-《程序开发心理学(银年纪念版)》