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

Asa*_*saf 35 python class naming-conventions

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

Fel*_*ing 57

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

由于Python 不仅仅是 OO语言,因此有一个规则说没有意义,一个文件应该只包含一个类.

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


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

班级名称

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

包和模块名称

模块应具有简短的全小写名称.如果提高可读性,则可以在模块名称中使用下划线.Python包也应该有简短的全小写名称,但不鼓励使用下划线.

由于模块名称映射到文件名,并且某些文件系统不区分大小写并截断长名称,因此选择模块名称相当短很重要 - 这在Unix上不是问题,但它可能是将代码传输到较旧的Mac或Windows版本或DOS时出现问题.


要实例化对象,必须在文件中导入该类.例如

>>> from mymodule import MyClass
>>> obj = MyClass()
Run Code Online (Sandbox Code Playgroud)

要么

>>> import mymodule
>>> obj = mymodule.MyClass()
Run Code Online (Sandbox Code Playgroud)

要么

>>> from mypackage.mymodule import MyClass
>>> obj = MyClass()
Run Code Online (Sandbox Code Playgroud)

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


Chr*_*nry 7

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

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