Добавить аргумент в функцию после того, как она уже была вызвана? - PullRequest
0 голосов
/ 19 октября 2019

Например, если у меня есть функция:

def to_full_name(first_name, last_name=None): # Note that 'last_name' is not required, so an error will not occur
    return '{} {}'.format(first_name, last_name)



# ...



a = to_full_name('John')

Как я могу добавить второй аргумент в переменную 'a' позже по строке? например:

a.set_argument('last_name', 'Doe')

1 Ответ

1 голос
/ 19 октября 2019

Для этой конкретной задачи я бы порекомендовал класс.

class Person:
    def __init__(self, first_name=None, last_name=None):
        self.first_name = first_name
        self.last_name = last_name

    def set_first_name(self, name):
        self.first_name = name

    def set_last_name(self, name):
        self.last_name = name

    def to_full_name(): 
        return '{} {}'.format(self.first_name, self.last_name)

Затем мы изменим его следующим образом

person = Person("John")
person.set_last_name("Doe")
print(person.to_full_name())

Мы также можем изменить значения напрямую

person = Person()
person.last_name = "Doe"
person.first_name = "John"
print(person.to_full_name())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...