Получить доступ к другому объекту класса через импорт
У меня есть имя программы "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().