Найти - Пользователи
Полная версия: Добавить аргументы в переменную.
Начало » Python для новичков » Добавить аргументы в переменную.
1
ZIL130
Дано – есть переменная 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
Ответ найден.
Использовать декоратор @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 с кнопками выбора.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB