Итак, я искал и не мог найти ответ. Я хочу изменить параметры из объекта, созданного в моем основном файле, в модуле. Например, я проверяю это с простым куском кода здесь:Как изменить параметры объекта класса из другого модуля (python)
-Этот мой главным файл, из которого я создаю объекты и определить некоторые свойства
import class_test_2
class dog():
name=''
spots=0
def add_spots(self):
self.spots+=1
def main():
fido=dog()
fido.name='Fido'
print('Fido\'s spots: ',fido.spots)
fido.add_spots()
print('Fido\'s spots: ',fido.spots)
class_test_2.class_test()
print('Fido\'s spots: ',fido.spots)
if __name__=='__main__':
main()
-Это модуль, из которого я хочу использовать функции для изменения атрибутов в главном файле
from class_test_1 import dog
def class_test():
fido.add_spots()
-SO мой вопрос, как я могу это сделать/почему не этот кусок кода выше работы? Выполняя основную функцию самостоятельно показывает, что пятна fido увеличиваются на 1 каждый раз при ее печати. Однако выполнение кода, вызывающего модуль, дает NameError, поэтому мой модуль не распознает класс, хотя мне удалось его импортировать. Заранее благодарю за любую помощь.
Почему вы думаете, что импорт «собаки» дает вам доступ к 'fido'? Это определяется только в 'main', который даже не запускается при импорте. Кроме того, знаете ли вы, что они не являются атрибутами экземпляра класса? И почему круговой импорт? – jonrsharpe
Так нет способа импортировать объект с его свойствами в целости и сохранности в любой момент времени? Скажем, в середине моей основной функции я хочу проверить значение переменной, привязанной к объекту, но я хочу выполнить эту проверку из модуля. Я просто хочу сэкономить место в моей основной функции ... – user4218818
Конечно, не используя импорт. Пропустите явно, это намного проще. – jonrsharpe