2016-12-01 4 views
0

Я работаю на функции, где уже создали приложение, но я не могу редактироватьпитон вызов метода из внешней функции класса

class mainProject(): 
    def __init__(self, screen): 
      module1 = importlib.import_module(extension) 
      module1.openBox() 


    def boxIsOpen(self): 
      ....... 

Я пытаюсь выполнить boxIsOpen() в моей пользовательской функции Openbox () в модуле расширения.

Это можно сделать? Я пытаюсь повторно инициализировать класс в функцию, но это не предыдущая функция. Ключевое слово «caller» действительно не работает.

Благодаря

+1

Есть ли причина, по которой вы пытаетесь импортировать 'module1' indisde' mainProject .__ init __() '? Если вы импортируете его там, он не будет доступен функции 'boxIsOpen'. Вероятно, вы должны импортировать его на уровне файла. – danielunderwood

+0

@ danielu13, спасибо за ваш ответ, его просто маленький пример. Я не буду отправлять полную .py. Я просто размахиваю и редактирую часть, чтобы сохранить основное. Например, importLib и моя внешняя функция. –

+1

Когда вы говорите, что приложение уже создано ... У меня такое чувство, что вы делаете что-то очень, очень плохое. Можете ли вы подтвердить, что вы пытаетесь редактировать функции добавления в класс Python во время выполнения? Это должно (почти) никогда не понадобиться большинству людей ... – Lunaweaver

ответ

0

Вообще говоря, импорт в середине кода, не говоря уже в конструкторе не рекомендуется.

import extension 
class mainProject(): 
    def __init__(self, screen): 
     extension.openBox() 

    def boxIsOpen(self): 
     ... 

Должен сделать трюк.

Если вы не можете прикоснуться к оригиналу в противном случае, вы должны рассмотреть подклассификацию mainProject.

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