Python中的类是否在不同的文件中?

时间:2010-05-19 09:47:35

标签: python class naming-conventions

就像Java(或php)一样,我习惯将类分隔到文件中。
在Python中它是一样的交易吗?另外,我应该如何命名文件?
小写像classname.py或类似ClassName.py?
如果我想从这个类创建一个对象,或者它在同一个“项目”(netbeans)中是否可以从中创建一个对象,我是否需要做一些特别的事情?

2 个答案:

答案 0 :(得分:47)

在Python中,一个文件称为module。模块可以包含多个类或函数。

由于Python 只是OO语言,所以有一个规则说一个文件应该只包含一个类没有意义。

一个文件(模块)应包含属于一起的类/功能,即提供类似的功能或相互依赖 当然你不应该夸大这一点。如果您的模块包含太多类或函数,则可读性确实会受到影响。然后,可能是时候将功能重新组合到不同的模块中并创建packages


对于命名约定,您可能希望阅读PEP 8,但简而言之:

  

班级名称

     

几乎无一例外,类名使用CapWords约定。         内部使用的类别还有一个主要的下划线。

  

套餐和模块名称

     

模块应该有简短的全小写名称。可以使用下划线         在模块名称中,如果它提高了可读性。 Python包应该         虽然使用下划线,但也有简短的全小写名称         气馁。

     

由于模块名称映射到文件名,而某些文件系统是         不区分大小写和截断长名称,重要的是模块         名称选择相当短 - 这在Unix上不会成为问题,         但是当代码被传输到较旧的Mac或时,它可能是一个问题         Windows版本,或DOS。


要实例化对象,您必须在文件中导入该类。 E.g

>>> from mymodule import MyClass
>>> obj = MyClass()

>>> import mymodule
>>> obj = mymodule.MyClass()

>>> from mypackage.mymodule import MyClass
>>> obj = MyClass()

您正在询问必要的基本内容,因此我建议您阅读tutorial

答案 1 :(得分:2)

不,您可以在单个文件中定义多个类(和函数等)。文件也称为模块。

要使用模块/文件中定义的类/函数,您需要import模块/文件。