哪个更好:将所有内容导入每个文件或从其他文件导入所有内容
Whitch is better: import every thing into every file or import everything from an other file
我想知道哪种方式导入模块最好。
我目前正在为我的 Pygame- 游戏使用多个文件。有主要文件,还有一个我从中导入所有内容的文件。
是这样的:
settings.py:
import pygame,random,os,...
一个主游戏文件:
from settings import pygame
一切正常,但我应该这样做吗?
一个主游戏文件(重写):
import pygame
正如下面link所说,在另一个模块中导入必要的模块,是一个很好看的代码。对于大型项目来说,这是一项必要的工作,因为每件事都会变得疯狂。
第一种导入模块的方法意味着您从设置而不是直接导入 pygame 是有原因的。
您可能在 settings.py 中修改了来自 pygame 的一些变量、函数或对象,因此从 settings.pygame 导入的内容与从 [=34] 导入的内容具有不同的行为=]直接。
仅举个例子(我会说如何不这样做):
假设您的 pygame.py 具有如下函数:
enemy_action( In_1, ... , In_n, DIFFICULTY )
在您的 settings.py 中,您现在可能已经存储了难度设置,因此您可以通过为函数创建装饰器来重新定义已设置难度的函数:
pygame.DIFFICULTY = DIFFICULTY
def pygame.difficulty_setter(f):
def inner(*x, DIFFICULTY = pygame.DIFFICULTY):
return f(*x,DIFFICULTY = pygame.DIFFICULTY)
return inner
如果你现在设置
enemy_action = pygame.difficulty_setter(enemy_action)
函数 enemy_action 不再需要传递 DIFFICULTY 参数。
我想知道哪种方式导入模块最好。
我目前正在为我的 Pygame- 游戏使用多个文件。有主要文件,还有一个我从中导入所有内容的文件。
是这样的:
settings.py:
import pygame,random,os,...
一个主游戏文件:
from settings import pygame
一切正常,但我应该这样做吗?
一个主游戏文件(重写):
import pygame
正如下面link所说,在另一个模块中导入必要的模块,是一个很好看的代码。对于大型项目来说,这是一项必要的工作,因为每件事都会变得疯狂。
第一种导入模块的方法意味着您从设置而不是直接导入 pygame 是有原因的。
您可能在 settings.py 中修改了来自 pygame 的一些变量、函数或对象,因此从 settings.pygame 导入的内容与从 [=34] 导入的内容具有不同的行为=]直接。
仅举个例子(我会说如何不这样做):
假设您的 pygame.py 具有如下函数:
enemy_action( In_1, ... , In_n, DIFFICULTY )
在您的 settings.py 中,您现在可能已经存储了难度设置,因此您可以通过为函数创建装饰器来重新定义已设置难度的函数:
pygame.DIFFICULTY = DIFFICULTY
def pygame.difficulty_setter(f):
def inner(*x, DIFFICULTY = pygame.DIFFICULTY):
return f(*x,DIFFICULTY = pygame.DIFFICULTY)
return inner
如果你现在设置
enemy_action = pygame.difficulty_setter(enemy_action)
函数 enemy_action 不再需要传递 DIFFICULTY 参数。