24小时热门版块排行榜    

查看: 2541  |  回复: 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的回帖

typho0n

金虫 (正式写手)


dubo: 金币+1, 欢迎讨论 2012-06-22 21:55:48
楼主好萌,

[ 发自手机版 http://muchong.com/3g ]
7楼2012-06-22 00:46:54
已阅   回复此楼   关注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的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿中南大学化学学硕0703总分337求调剂 +5 niko- 2026-03-22 5/250 2026-03-23 22:01 by fuyu_
[考研] 一志愿陕师大生物学071000,298分,求调剂 +3 SYA! 2026-03-23 3/150 2026-03-23 19:09 by macy2011
[考研] 328求调剂 +4 LHHL66 2026-03-23 4/200 2026-03-23 14:55 by lbsjt
[考研] 263求调剂 +6 yqdszhdap- 2026-03-22 9/450 2026-03-23 12:57 by yqdszhdap-
[考研] 一志愿东华大学化学070300,求调剂 +7 2117205181 2026-03-21 8/400 2026-03-22 22:55 by chixmc
[考研] 一志愿北京化工大学070300 学硕336求调剂 +5 vv迷 2026-03-21 8/400 2026-03-22 14:20 by ColorlessPI
[考研] 354求调剂 +7 Tyoumou 2026-03-18 10/500 2026-03-22 11:11 by 人来盛
[考研] 286求调剂 +10 Faune 2026-03-21 10/500 2026-03-21 23:34 by 314126402
[考研] 考研调剂 +3 呼呼?~+123456 2026-03-21 3/150 2026-03-21 20:04 by 无际的草原
[考研] 278求调剂 +9 烟火先于春 2026-03-17 9/450 2026-03-21 17:47 by 学员8dgXkO
[考研] 313求调剂 +4 肆叁贰壹22 2026-03-19 4/200 2026-03-21 17:33 by ColorlessPI
[考研] 330求调剂0854 +3 assdll 2026-03-21 3/150 2026-03-21 13:01 by 搏击518
[考研] 求调剂 +6 Mqqqqqq 2026-03-19 6/300 2026-03-21 08:04 by JourneyLucky
[考研] 一志愿天津大学化学工艺专业(081702)315分求调剂 +12 yangfz 2026-03-17 12/600 2026-03-21 03:30 by JourneyLucky
[考研] 265求调剂 +3 Jack?k?y 2026-03-17 3/150 2026-03-21 03:17 by JourneyLucky
[考研] 南京大学化学376求调剂 +3 hisfailed 2026-03-19 6/300 2026-03-20 23:43 by hisfailed
[考研] 295求调剂 +4 一志愿京区211 2026-03-18 6/300 2026-03-20 23:41 by JourneyLucky
[考研] 材料学求调剂 +4 Stella_Yao 2026-03-20 4/200 2026-03-20 20:28 by ms629
[考研] 086500 325 求调剂 +3 领带小熊 2026-03-19 3/150 2026-03-20 18:38 by 尽舜尧1
[考研] 材料考研调剂 +3 xwt。 2026-03-19 3/150 2026-03-19 11:22 by w沐阳w
信息提示
请填处理意见