我想知道哪種方式最適合導入模塊。孰優孰劣:將每件東西導入每個文件或從其他文件導入所有內容
我目前對我的Pygame遊戲使用多個文件。有主要文件,還有一個文件,我從中導入所有內容。
是這樣的:
settings.py:
import pygame,random,os,...
主要遊戲文件:
from settings import pygame
一切工作正常,但我應該做它,而不是這樣嗎?
主遊戲文件(rewriten):
import pygame
我想知道哪種方式最適合導入模塊。孰優孰劣:將每件東西導入每個文件或從其他文件導入所有內容
我目前對我的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://stackoverflow.com/q/18792145/2301450 – vaultah
儘管我已閱讀其他帖子,但我並沒有明白這一點。 –