与进口python有点混淆

Ste*_*ven 5 python import module python-2.7

我来自PHP(以及其他一些东西)背景,我正在玩Python.在PHP中我想要包含另一个文件,include或者require包含该文件中的所有内容.

但似乎推荐的方法在python中做的事情是,from file import但似乎更多的包括库和东西?你如何在几个文件中分离你的代码?是唯一的方法,使用一大堆函数调用单个文件,然后导入15个其他文件?

zmo*_*zmo 9

PHP和Python之间的情况完全不同,原因有很多.

但似乎推荐的方法在python中做的事情是,from file import但似乎更多的包括库和东西?

实际上,import语句用于将对象从另一个模块导入当前模块.您可以将导入模块的所有对象导入当前模块:

import foo

print foo.bar
Run Code Online (Sandbox Code Playgroud)

或者您可以从该模块中选择您想要的内容:

from foo import bar

print bar
Run Code Online (Sandbox Code Playgroud)

甚至更好,如果您导入模块两次,它将只导入一次:

>> import foo as foo1
>> import foo as foo2
>> foo1 is foo2
True
Run Code Online (Sandbox Code Playgroud)

你如何在几个文件中分离你的代码?

你必须考虑你的代码......这就是所谓的软件设计,这里有一些规则:

  • 你永远不会在模块的水平上写一个算法; 而是使它成为一个函数,并调用该函数
  • 你永远不会在模块的层面上实例化一个对象; 你应该将它嵌入到函数中,并调用该函数
  • 如果您需要多个不同函数中的对象,请创建一个类并将该对象封装在该类中,然后在绑定到该类的函数中使用它(因此它们现在称为方法)

唯一的例外是当你想从命令行启动一个程序时,你追加:

if __name__ == "__main__":
Run Code Online (Sandbox Code Playgroud)

在模块的最后.我最好的建议是在之后调用你的第一个函数:

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

是唯一的方法,使用一大堆函数调用单个文件,然后导入15个其他文件?

这不是唯一的方法,但这是最好的方法.您将所有算法都放入函数和对象库中,然后在其他库中完全导入您需要的内容.这就是您如何创建可重用代码的整个世界,而不必重新发明轮子!所以忘记文件,并考虑包含对象的模块.

最后,我向你学习Python的最好的建议就是忘却所有的习惯和使用,同时编码PHP你有,再学习这些东西,是不同的.最后,这只会让你成为一名更好的软件工程师.