2017-08-02 35 views
0

我想知道哪種方式最適合導入模塊。孰優孰劣:將每件東西導入每個文件或從其他文件導入所有內容

我目前對我的Pygame遊戲使用多個文件。有主要文件,還有一個文件,我從中導入所有內容。

是這樣的:

settings.py:

import pygame,random,os,... 

主要遊戲文件:

from settings import pygame 

一切工作正常,但我應該做它,而不是這樣嗎?

主遊戲文件(rewriten):

import pygame 
+0

查看https://stackoverflow.com/q/18792145/2301450 – vaultah

+0

儘管我已閱讀其他帖子,但我並沒有明白這一點。 –

回答

0

導入模塊的第一種方式意味着您有一個原因是從設置導入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將不需要再被通過的難度參數。

+0

因此,如果我每次都導入所有模塊(即使我需要在第一個文件中聲明pygame.mixer,但在第二個文件中不包含pygame.image和pygame.image,而不是在我的設置中包含pygame.mixer .py;這兩個文件都是遊戲的一部分)? –

+0

在這種情況下,性能部分大多是一個理論值。要真正影響你的程序,你需要一個荒謬的功能。我只是測試了它:一個腳本有1個功能,另一個有1000個功能。增加了999個額外功能,每個功能調用增加9 ns。 – Sanitiy

0

作爲鏈接波紋管說,在另一個模塊中輸入必要的模塊,是良好的形狀看代碼。對於大型項目來說,這是一項必要的工作,因爲每件事情都會變得瘋狂。
Python import modules in another file

相關問題