孰优孰劣:将每件东西导入每个文件或从其他文件导入所有内容
我想知道哪种方式最适合导入模块。孰优孰劣:将每件东西导入每个文件或从其他文件导入所有内容
我目前对我的Pygame游戏使用多个文件。有主要文件,还有一个文件,我从中导入所有内容。
是这样的:
settings.py:
import pygame,random,os,...
主要游戏文件:
from settings import pygame
一切工作正常,但我应该做它,而不是这样吗?
主游戏文件(rewriten):
import pygame
导入模块的第一种方式意味着您有一个原因是从设置导入pygame,而不是直接导入pygame。
您可能已经在settings.py中的pygame中修改了一些变量,函数或对象,以便从settings.pygame导入的内容具有与直接从pygame导入的内容不同的行为。
只是一个例子的缘故(怎么不这样做我会说):
假设你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将不需要再被通过的难度参数。
因此,如果我每次都导入所有模块(即使我需要在第一个文件中声明pygame.mixer,但在第二个文件中不包含pygame.image和pygame.image,而不是在我的设置中包含pygame.mixer .py;这两个文件都是游戏的一部分)? –
在这种情况下,性能部分大多是一个理论值。要真正影响你的程序,你需要一个荒谬的功能。我只是测试了它:一个脚本有1个功能,另一个有1000个功能。增加了999个额外功能,每个功能调用增加9 ns。 – Sanitiy
作为链接波纹管说,在另一个模块中输入必要的模块,是良好的形状看代码。对于大型项目来说,这是一项必要的工作,因为每件事情都会变得疯狂。
Python import modules in another file
查看https://*.com/q/18792145/2301450 – vaultah
尽管我已阅读其他帖子,但我并没有明白这一点。 –