2016-11-23 5 views
2

Как я могу сохранить импортированные модули доступными (т. Е. Забив мои параметры завершения кода)?Сохранять импортированные модули в завершении кода?

Например:

# testmodule.py 

import os 

def o_stuff(): 
    return 

Когда я импортировать testmodule, я не хочу, чтобы показать os каждый раз, когда я печатаю testmodule.; Мне нужны только функции/классы, объявленные в тестовом модуле - в этом случае всего o_stuff.

Есть ли что-то похожее на звездочку (т. Е. from testmodule import *), что будет делать это?

ответ

3

Вы можете определить специальную переменную __all__, содержащий список имен, которые будут импортированы from module import * - например:

# testmodule.py 

import os 

__all__ = ['o_stuff', 'more_stuff'] 

def o_stuff(): 
    pass 

def more_stuff(): 
    pass 

Иды с кодом заканчивания, как правило, также уважать __all__ (хотя я не знаком с Visual Studio, поэтому я не знаю, делает ли это IntelliSense).

Альтернатива, включена здесь для полноты картины, хотя я бы настоятельно рекомендую против него (на то основании, что это будет раздражать читающее ваш код для отвлечения) для импорта модулей в качестве подчеркивания префикса псевдонима:

# ugly_as_sin.py 

import os as _os 

def o_stuff(): 
    return _os.name 

Опять же, как from module import *, так и, как правило, при завершении кода игнорируются имена подчёркнутых символов.

+0

D'oh, на 3 секунды! – Carlos

2

Вы можете попытаться использовать __all__ в своем модуле, чтобы узнать, если это поможет.

import os 

__all__ = ['o_stuff'] 

def o_stuff(): 
    return 

Не знаком с Intellisense, но похоже, что он также может использовать немного тонкой настройки.

Смежные вопросы