24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2560  |  回复: 15
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

yjcmwgk

禁虫 (文坛精英)

密度泛函·小卒

优秀版主

[交流] 祝贺自己 终于自己成功编写了一个class 从此跨入面向对象的程序设计的第一道门槛 已有14人参与

看了整整一天class,终于编写了第一个能成功运行的class,一只小企鹅(penguin)。
祝贺自己从此跨入面向对象的程序设计的第一道门槛
我和小企鹅的互动,好萌的
先定义了鸟类(bird),包括吃饭(eat),喝水(drink),起飞(takeoff),落地(landing),唱歌(sing),消化(digest)
然后用小企鹅(penguin)继承了鸟类(bird),同时在penguin类中重新定义了起飞(takeoff被改写,只剩下“企鹅不会飞”的一句话了),重新定义了落地(landing被改写,改成从海里到陆地上,而不是从空中到陆地上),增加了游泳(swim)。
然后我就开始跟我的企鹅互动了。感觉很有成就感呢
CODE:
>>> p=penguin()
>>> p.digest()
Our penguin is still waiting for your care.
>>> p.takeoff()
I am a penguin. I cannot fly.
>>> p.swim()
I am too hungry to swim. Please run bird.eat()
>>> p.eat()
I am eating! Aaaaaaaaaaah~
>>> p.eat()
I am full! I don not want to eat anything!
>>> p.swim()
I am too thirsty to swim. Please run bird.drink()
>>> p.drink()
I am drinking water. Gu lu, Gu lu, Gu lu~
>>> p.drink()
Too much water! Now I do not need water.
>>> p.swim()
I am ready to swim! Jump to sea now! Gu Gu Gu~
>>> p.digest()
After two hours swim, our lovely penguin gets hungry and thirsty.
Oh! I am too hungry to swim. I am going back to the land.
>>> p.eat()
I am eating! Aaaaaaaaaaah~
>>> p.drink()
I am drinking water. Gu lu, Gu lu, Gu lu~
>>> p.digest()
After four hours waiting, our lovely penguin gets hungry and thirsty.
>>> p.sing()
Squawk! Squawk! Squawk!
>>>

类的定义
CODE:
>>> class bird:
         def __init__(self):
                 self.hungry = True
                 self.thirsty = True
                 self.insky = False
         def eat(self):
                 if (self.hungry == True):
                         print "I am eating! Aaaaaaaaaaah~"
                         self.hungry = False
                 else:
                         print "I am full! I don not want to eat anything!"
         def drink(self):
                 if (self.thirsty == True):
                         print "I am drinking water. Gu lu, Gu lu, Gu lu~"
                         self.thirsty = False
                 else:
                         print "Too much water! Now I do not need water."
         def takeoff(self):
                 if (self.hungry == True):
                         print "I am too hungry to fly. Please run bird.eat()"
                 elif (self.thirsty == True):
                         print "I am too thirsty to fly. Please run bird.drink()"
                 else:
                         if(self.insky == False):
                                 print "I am ready to fly! Takeoff now! Pu pu pu pu ~"
                                 self.insky = True
                         else:
                                 print "I am already in the sky! Wow!"
         def landing(self):
                 if (self.insky == True):
                         print "I am tired. Now I am going to land."
                         self.insky = False
                 else:
                         print "I have already on the land."
         def sing(self):
                 print "Squawk! Squawk! Squawk!"
         def digest(self):
                 if ((self.hungry == False) and (self.insky==True)) or ((self.thirsty == False) and (self.insky==True)):
                         self.hungry = True
                         self.thirsty = True
                         self.insky = False
                         print "After two hours flight, our lovely bird gets hungry and thirsty."
                         print "Oh! I am too hungry to fly. I am going back to the land."
                 elif ((self.hungry == False) and (self.insky==False)) or ((self.thirsty == False) and (self.insky==False)):
                         self.hungry = True
                         self.thirsty = True
                         print "After four hours waiting, our lovely bird gets hungry and thirsty."
                 elif ((self.hungry == True)  or (self.thirsty == True)):
                         print "Our bird is still waiting for your care."

                        
>>> class penguin(bird):
        def __init__(self):
                bird.__init__(self)
                self.insea = False
        def takeoff(self):
                print "I am a penguin. I cannot fly."
        def swim(self):
                 if (self.hungry == True):
                         print "I am too hungry to swim. Please run bird.eat()"
                 elif (self.thirsty == True):
                         print "I am too thirsty to swim. Please run bird.drink()"
                 else:
                         if(self.insea == False):
                                 print "I am ready to swim! Jump to sea now! Gu Gu Gu~"
                                 self.insea = True
                         else:
                                 print "I am already in the sea! Wow!"
        def landing(self):
                 if (self.insea == True):
                         print "I am tired. Now I am going to land."
                         self.insea = False
                 else:
                         print "I have already on the land."
        def digest(self):
                 if ((self.hungry == False) and (self.insea==True)) or ((self.thirsty == False) and (self.insea==True)):
                         self.hungry = True
                         self.thirsty = True
                         self.insea = False
                         print "After two hours swim, our lovely penguin gets hungry and thirsty."
                         print "Oh! I am too hungry to swim. I am going back to the land."
                 elif ((self.hungry == False) and (self.insea==False)) or ((self.thirsty == False) and (self.insea==False)):
                         self.hungry = True
                         self.thirsty = True
                         print "After four hours waiting, our lovely bird gets hungry and thirsty."
                 elif ((self.hungry == True)  or (self.thirsty == True)):
                         print "Our penguin is still waiting for your care."

                        



[ Last edited by yjcmwgk on 2012-6-22 at 07:55 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mt3530

铁虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
也来学习学习,做个标记先...
关键不是所处的位置,而是努力的方向
16楼2012-07-30 13:41:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 16 个回答

ktkh

铁杆木虫 (知名作家)

青椒一百五十斤


dubo: 金币+1, 欢迎讨论 2012-06-22 21:55:28
很强悍。我不懂。呵呵
海阔天空
2楼2012-06-21 21:44:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dubo: 金币+1, 欢迎讨论 2012-06-22 21:55:34
4楼2012-06-21 23:08:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军


dubo: 金币+1, 欢迎讨论 2012-06-22 21:55:39
哈哈,很好玩,顶了
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
5楼2012-06-21 23:11:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 289求调剂 +7 新时代材料 2026-03-27 7/350 2026-03-27 18:08 by arrow8852
[考研] 307求调剂 +8 超级伊昂大王 2026-03-24 9/450 2026-03-27 15:34 by 超级伊昂大王
[考研] 材料与化工(0856)304求B区调剂 +7 邱gl 2026-03-27 7/350 2026-03-27 15:27 by Joe率
[考研] 安徽大学专硕生物与医药专业(086000)324分,英语已过四六级,六级521,求调剂 +4 美味可乐鸡翅 2026-03-26 4/200 2026-03-27 15:27 by 星空星月
[考研] 274求调剂 +17 顾九笙要谦虚 2026-03-24 23/1150 2026-03-27 15:16 by caszguilin
[考研] 一志愿北京化工大学材料与化工 264分各科过A区国家线 +10 哈哈157349 2026-03-21 10/500 2026-03-27 13:06 by zzll406
[考研] 求调剂,一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +4 @taotao 2026-03-26 5/250 2026-03-27 08:10 by hypershenger
[硕博家园] 招收生物学/细胞生物学调剂 +3 IceGuo 2026-03-26 4/200 2026-03-27 05:35 by user003
[考研] 342求调剂 +3 加油a李zs 2026-03-26 3/150 2026-03-27 00:29 by wxiongid
[考研] 294分080500材料科学与工程求调剂 +4 柳溪边 2026-03-26 4/200 2026-03-26 21:14 by XPU李庆
[考研] 081200-11408-276学硕求调剂 +3 崔wj 2026-03-26 3/150 2026-03-26 19:57 by nihaoar
[考研] 一志愿 南京邮电大学 288分 材料考研 求调剂 +3 jl0720 2026-03-26 3/150 2026-03-26 13:39 by zzll406
[考研] 材料与化工328分调剂 +6 。,。,。,。i 2026-03-23 6/300 2026-03-25 22:30 by 418490947
[考研] 求调剂 +3 李李不服输 2026-03-25 3/150 2026-03-25 13:03 by cmz0325
[考研] 0703化学求调剂 +6 奶油草莓. 2026-03-22 7/350 2026-03-25 10:00 by shangxh
[考研] 333求调剂 +3 ALULU4408 2026-03-23 3/150 2026-03-23 19:04 by macy2011
[考研] 生物学一志愿985,分数349求调剂 +6 zxts12 2026-03-21 9/450 2026-03-23 18:37 by macy2011
[考研] 求调剂一志愿海大,0703化学学硕304分,有大创项目,四级已过 +6 幸运哩哩 2026-03-22 10/500 2026-03-22 20:10 by edmund7
[考研] 306求调剂 +5 来好运来来来 2026-03-22 5/250 2026-03-22 16:17 by BruceLiu320
[考研] 285求调剂 +6 ytter 2026-03-22 6/300 2026-03-22 12:09 by 星空星月
信息提示
请填处理意见