Получить доступ к другому объекту класса через импорт

У меня есть имя программы "new.py" с ":

class hello:

    def __init__(self, summary):
        self.summary = summary


    def hi(self):
        print self.summary

if __name__ == "__main__":
    h = hello(summary = "this is a hello program")
    h.hi()

когда я хочу получить доступ к функции hi в названии другой программы another.py, тогда я не могу получить доступ к функции.. пожалуйста, помогите мне и исправьте меня тоже... another.py:

import new 

    class another:

        def __init__(self, value):
            self.value = value

        def show(self):
            print "value is %s" % self.value
            new.hi()
            print "done"

    if __name__ == "__main__":
        a = another(value = "this is a another value")
        a.show()

ВЫХОД:

new.hi()
AttributeError: 'module' object has no attribute hi

2 ответа

Проблема в том, что вы не инициализируете объект приветствия. Так что вам нужно сделать это где-нибудь перед вызовом функции hi:

        n  = new.hello('some string')

тогда вы можете позвонить:

       n.hi()

Актуальная проблема заключается в том, что вы делаете:

import new

а потом:

new.hi()

hi() не определен в new, он определен в new.hello, который является вашим классом. Вам нужно создать новый экземпляр класса hello и оттуда вызвать hi().

Другие вопросы по тегам