下面这段python代码中,使用help函数查看文档注释,为什么不仅不显示文档注释,反而开始运行代码了?

发布于 2022-09-01 23:07:48 字数 2316 浏览 19 评论 0

# -*- coding: utf-8 -*-
from sys import exit

def gold_room():
    """gold room"""
    print "This room is full of gold. How much do you take?"
    
    next = raw_input("> ")
    if "0" in next or "1" in next:
        how_much = int(next)
    else:
        dead("Man, learn to type a number.")
        
    if how_much < 50:
        print "Nice, you're not greedy, you win!"
        exit(0)
    else:
        dead("You greedy bastard!")
    
    
def bear_room():
    """bear room"""
    print "There is a bear here."
    print "The bear has a bunch of honey."
    print "The fat bear is in front of another door."
    print "How are you going to move the bear?"
    bear_moved = False
    
    while True:
        next = raw_input("> ")
        
        if next == "take honey":
            dead("The bear looks at you then slaps your face off.")
        elif next == "taunt bear" and not bear_moved:
            print "The bear has moved from the door. You can go through it now."
            bear_moved = True
        elif next == "taunt bear" and bear_moved:
            dead("The bear gets pissed off and chews your leg off.")
        elif next == "open door" and bear_moved:
            gold_room()
        else:
            print "I got no idea what that means."
            
            
def cthulhu_room():
    """cthulhu room"""
    print "Here you see the great evil Cthulhu."
    print "He, it, whatever stares at you and you go insane."
    print "Do you flee for your life or eat your head?"
    
    next = raw_input("> ")
    
    if "flee" in next:
        start()
    elif "head" in next:
        dead("Well that was tasty!")
    else:
        cthulhu_room()
        
        
def dead(why):
    """dead view"""
    print why, "Good job!"
    exit(0)
    
def start():
    """game start"""
    print "You are in a dark room."
    print "There is a door to your right and left."
    print "Which one do you take?"
    
    next = raw_input("> ")
    
    if next == "left":
        bear_room()
    elif next == "right":
        cthulhu_room()
    else:
        dead("You stumble around the room until you starve.")
        

start()

如题所说,这是《learn python the hard way》里的代码,我查了help函数,但是没查到原理,不知道为什么会这样,拿其他代码试,没有发生这种情况。那本书刚学到ex37,所以知道的还不多,是个新手,求解答。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

找个人就嫁了吧 2022-09-08 23:07:48

你可以认为 Python 是边读取代码边执行的。于是,为了加载文档字符串,你这个模块被导入。导入的意思就是读取并执行。于是,导入了 exit、定义了一个函数、两个函数……到最后,Python 读到 start(),就开始执行啦~

一般我们会把实际干活的部分放到 if __name__ == '__main__' 条件中,这样被作为模块导入时,条件为假,就不会执行里边真正干活的代码了。

  • 列表项目

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文