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

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

# -*- 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,所以知道的还不多,是个新手,求解答。


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

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

【热门文章】
【热门文章】