Если у вас есть набор методов в файле, есть ли способ включить эти файлы в другой файл, но вызвать их без префикса (т.е. префикса файла)?
Итак, если у меня есть:
[Math.py]
def Calculate ( num )
Как мне это назвать:
[Tool.py]
using Math.py
for i in range ( 5 ) :
Calculate ( i )
from Math import *
это не рекомендуется .imp
модуль и магический звонок__import__
.Просто напишите команду "включить":
@Deleet:
Замечание @bfieck верное, для совместимости с python 2 и 3 вам необходимо:
Python 2 и 3: альтернатива 1
Python 2 и 3: альтернатива 2
источник
from module import *
? Кроме того, если файл, который вы вызываете, имеет код в теле, этот код будет запущен, если вы это сделаете.execfile
compile()
чем упомянуто. Итак, правильные Python 2 и 3: альтернатива 2 будет:exec(compile(source=open('myfile.py').read(), filename='myfile.py', mode='exec'))
Если вы используете:
тогда это позволит вам использовать функции Math, но вы должны использовать Math.Calculate, так что, очевидно, это то, чего вы не хотите.
Если вы хотите импортировать функции модуля без префикса, вы должны явно назвать их, например:
Теперь вы можете ссылаться на Calculate, Add и Subtract только по их именам. Если вы хотите импортировать ВСЕ функции из Math, выполните:
Однако вы должны быть очень осторожны, делая это с модулями, в содержании которых вы не уверены. Если вы импортируете два модуля, которые содержат определения для одного и того же имени функции, одна функция перезапишет другую, и вы не станете мудрее.
источник
Я обнаружил, что модуль проверки Python очень полезен
Например, с teststuff.py
И из другого скрипта или консоли python
И теперь dostuff должен быть в локальной области видимости, и dostuff () вернет консоль или скрипты _ name _, тогда как выполнение test.dostuff () вернет имя модуля python.
источник