Найти - Пользователи
Полная версия: Аналог execfile для исполнения не из файла
Начало » Python для новичков » Аналог execfile для исполнения не из файла
1 2
reclosedev
Зачем import так и не понял. Чтобы обращение в коде как в модуле было?

Можно вот так:
import types
 
test = types.ModuleType("test")
exec """
a = 3
def foo(c):
    print c
""" in test.__dict__
print test.a
test.foo("it works")

upd
alexeyvanzhula
Нужно скрипт передать из одного питона другому по определенному порту, не используя при этом файловую систему. Но это уже другая история…
А вот с этим аккуратнее.
alexeyvanzhula
reclosedev
Зачем import так и не понял. Чтобы обращение в коде как в модуле было?Можно вот так:

Блин. То шо доктор прописал! Спасибо вам добрые люди !!!

ПС. Зачем такой import? Для того же самого - чтобы не использовать файлы во время передачи команд. Это длинная история )
krishnarama
reclosedev
test = types.ModuleType("test")
Может сразу
test = __import__('test')
?

И exec не всегда зло, в консоли файлы отлаживать, например.
reclosedev
krishnarama
Может сразу
test = __import__('test')
__import__ импортирует существующий модуль, test - неудачное имя для примера, он есть в стандартной библиотеке.
In [1]: __import__("asdfasdf")
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-9bc88631442a> in <module>()
----> 1 __import__("asdfasdf")
ImportError: No module named asdfasdf
In [2]: import types
In [3]: types.ModuleType("asdfasdf")
Out[3]: <module 'asdfasdf' (built-in)>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB