Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 13, 2026 13:49:27

ZIL130
Зарегистрирован: 2022-10-29
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Добавить аргументы в переменную.

Дано – есть переменная comand, которая вот такая: comand = arg1 + arg2 + arg3. Строковый тип.
Как сделать так чтобы после отработки первой функции в comand добавлялся первый аргумент, после отработки второй функции – второй и после отработки третьей функции – третий?
Набросал вот такой код:

 class Func():
    def __init__(self, **kwargs):
        
        self.arg1 = ''
        self.arg2 = ''
        self.arg3 = ''
        
        self.comand = self.arg1 + self.arg2 + self.arg3
        
    def add_arg1(self):
        self.arg1 = input('Введите первый аргумент: ')
        print('Команда: ', self.comand)
        
    def add_arg2(self):
        self.arg2 = input('Введите второй аргумент: ')
        print('Команада: ', self.comand)
        
    def add_arg3(self):
        self.arg3 = input('Введите третий аргумент')
        print('Команда: ', self.comand)
func = Func()
func.add_arg1()
func.add_arg2()
func.add_arg3()
Но ничего не работает. Помогите пожалуйста. Выводит пустую строку как задано в начале. Как можно изменить значение переменных?

Отредактировано ZIL130 (Фев. 14, 2026 21:09:04)

Офлайн

#2 Фев. 15, 2026 14:57:14

ZIL130
Зарегистрирован: 2022-10-29
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Добавить аргументы в переменную.

Ответ найден.
Использовать декоратор @property для вычисляемых динамически переменных.

 class Func():
    def __init__(self, **kwargs):
    
        self.arg1 = ''
        self.arg2 = ''
        self.arg3 = ''
    
        #self.comand = self.arg1 + self.arg2 + self.arg3
    
    def add_arg1(self):
        self.arg1 = input('Введите первый аргумент: ')
        print('Команда: ', self.comand)
    
    def add_arg2(self):
        self.arg2 = input('Введите второй аргумент: ')
        print('Команада: ', self.comand)
    
    def add_arg3(self):
        self.arg3 = input('Введите третий аргумент')
        print('Команда: ', self.comand)
    
    @property
    def comand(self):
        return self.arg1 + self.arg2 + self.arg3
func = Func()
func.add_arg1()
func.add_arg2()
func.add_arg3()
Перенос вычисления значения переменной comand в функцию с использованием декоратора @property позволяет изменять динамически получаемые значения интерактивно. Например в GUI с кнопками выбора.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version