2011-02-01 170 views
4

我刚刚进入Python编码,我想知道哪些被认为是更pythonic?例子A:一个明显的主要方法。主要功能,pythonic?

#!/usr/bin/env python -tt 

import random 

def dice_roll(num=1): 
    for _ in range(num): 
     print("Rolled a", random.randrange(1,7,1)) 

def main() 
    random.seed() 
    try: 
     num = int(input("How many dice? ")) 
     dice_roll(num) 
    except ValueError: 
     print("Non-numeric Input") 

if __name__ == '__main__': 
    main() 

或实施例B:没有主要方法。

#!/usr/bin/env python -tt 

import random 

def dice_roll(num=1): 
    for _ in range(num): 
     print("Rolled a", random.randrange(1,7,1)) 

if __name__ == '__main__': 
    random.seed() 
    try: 
     num = int(input("How many dice? ")) 
     dice_roll(num) 
    except ValueError: 
     print("Non-numeric Input") 

任何帮助/指针,将不胜感激?

+2

看看http://codereview.stackexchange.com/ – marcog 2011-02-01 01:12:05

回答

8

A更好,因为它允许你导入你的模块执行main中的东西,而不必不必要地干涉事情。实际上,如果它真的代表模块的实际功能,那么可以将其命名为比main更好的一个好的理由。

1

我会说例子A更Pythonic,但他们都可以接受。主要是因为你可以导入main,但通常你不需要这样做。

3

那么,当谈到作为Python化,我会说两者同样都是Python化,因为这是指特定的编程约定,并没有(也不应该)管理的方式,你的代码。

但是,人们通常会使用第一种形式,因为它更容易import,然后从另一个调用脚本。