Whitch更好:将所有内容导入每个文件或从其他文件导入所有内容

时间:2017-08-02 11:29:54

标签: python python-import

我想知道哪种方式最适合导入模块。

我目前正在为Pygame-Game使用多个文件。有主文件,还有一个文件,我从中导入所有内容。

就是这样:

settings.py:

import pygame,random,os,...

主要游戏文件:

from settings import pygame

一切正常,但我应该这样做吗?

主游戏文件(重写):

import pygame

2 个答案:

答案 0 :(得分:0)

正如链接所说,在另一个模块中导入必要的模块,是一个很好看的代码。对于大型项目来说,这是一项必要的工作,因为每件事都会变得疯狂 Python import modules in another file

答案 1 :(得分:0)

导入模块的第一种方式意味着您从设置导入pygame而不是直接导入pygame的原因。

您可能已经在settings.py中修改了pygame中的一些变量,函数或对象,因此从settings.pygame导入的内容与直接从pygame导入的内容具有不同的行为。

仅仅是为了一个例子(如何不这样做我会说):
假设你的pygame.py有一个类似的功能:

http {
    upstream myapp1 {
        server 127.0.0.1:81;
        server 127.0.0.1:82;
        server 127.0.0.1:83;
        server 127.0.0.1:84;
        server 127.0.0.1:85;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://myapp1;
        }
    }
}

在您的settings.py中,您现在可能已经存储了难度设置,因此您可以通过为函数创建装饰器来重新定义已经设置了DIFFICULTY的函数:

docker swarm init

如果您现在设置

docker service create --name=myapp --replicase=5 -p 80:80 yourimage

函数 enemy_action 不再需要传递DIFFICULTY参数。