Как можно заменить значение переменной в тройной кавычке в Python / Django на {значение}? - PullRequest
0 голосов
/ 19 мая 2019

Я нуб в django / python, я видел код в github об "экспорте файлов Vcard", мой вопрос о том, что программист заменит значение переменной в строковой переменной:

admin.py:

output = ""
  for person in queryset.all():
    person_output = """BEGIN:VCARD  
VERSION:3.0
N:{last_name};{first_name}
FN:{first_name} {last_name}
TEL;TYPE=HOME,VOICE:{phone}
TEL;TYPE=WORK,VOICE:{secondary_phone}
EMAIL:{email}
REV:{rev}
END:VCARD"""
    # how can replace value when the source is string?!
    person_output = person_output.format(  
                        first_name = person.first_name, 
                        last_name = person.last_name,
                        phone = person.phone,
                        secondary_phone = person.secondary_phone,
                        email = person.email,
                        rev = d.strftime('%Y%M%d%H%f'),
                        )

Может кто-нибудь PLZ объяснить, как это возможно, и дайте мне знать любую документацию Python / Django об этом? Спасибо.

1 Ответ

1 голос
/ 19 мая 2019

Это просто форматирование строки [pyformat] . Можно указать строку в соответствии с форматом, как описано в документации Python и в PEP-3101 , а затем, вызывая my_string.format(..), вы заменяете определенные части в строке другими частями .

Тот факт, что это строка между «тройными кавычками», не имеет никакого значения, поскольку это просто строка.

Весь формат описан в PEP-3101, но вкратце, если вы пишете {var_name}, а затем форматируете его с именованным аргументом .format(var_name=value), тогда {var_name} заменяется на value. Однако есть некоторые исключения, например {{}} заменяется на {}, а формат позволяет правильно выровнять числа и т. Д.

Начиная с , можно использовать f-строк [настоящий Python] для более эффективного форматирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...