我正在創建一個模塊,我將在主腳本中導入。在稱爲「顏色」的模塊中,有一個函數:「info()」。在調用函數之前強制使用模塊名稱,在Python中
顏色模塊:
def info(function=None):
print("\ncolors\n Info\n")
我的問題是,我還可以創建一個名爲「信息()」功能,在主腳本。這會不會是一個問題,只要我輸入的顏色模塊爲:
colors.info()
如果我來代替:
import colors
如果是的話,我會通過寫作調用模塊中的功能導入模塊爲:
from colors import *
我有兩個函數叫做完全相同。
主要腳本:
from colors import *
def info(): # A
print("Main script's function")
info() # A
colors.info() # Am I able to force use of the module name before calling the
# function, if I import the module as in this script? Can this
# be done from the module, and not from the main script? As said,
# force use of module name, as "colors.info()", shall only apply
# when the module is being imported with "from colors import *".
編輯1
我爲什麼要導入模塊,這樣的原因,是因爲在它的全局變量:
bwc0 = (0, 0, 0)
bwc1 = (1, 1, 1)
bwc2 = (2, 2, 2)
# All the way to 255
後一些答案,我會嘗試將這些添加到類中,並儘可能將該類導入爲*。 我也有一些功能,我也想輸入爲*。我不確定如何導入它們。我想可能很簡單。
def redc(value):
return value, 0, 0
def greenc(value):
return 0, value, value
感謝所有幫助
使用通配符在進口被認爲這將是一個反模式 –
一個改變壞主意。我只能想象所有的問題在「爲什麼我無法調用函數info()',儘管我明確地**在腳本中聲明瞭它?」。如果有人導入*([這是壞的](http://stackoverflow.com/questions/2386714/why-is-import-bad),並定義他們自己的'info'函數,如果忽略這個函數將是非常可怕的作爲另一個被導入的模塊的副作用。 – kazemakase
我會''將顏色導入爲co',所以你同時擁有'info()'和'co.info()':不再更長,並且從長遠來看可以節省頭痛。 – farsil