Добавить почтовый заголовок в функцию почты
$header = "From: noreply@example.com\r\n";
$header.= "MIME-Version: 1.0\r\n";
$header.= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$header.= "X-Priority: 1\r\n";
$status = mail($to, $subject, $message, $header);
if($status)
{
echo '<p>Your mail has been sent!</p>';
} else {
echo '<p>Something went wrong, Please try again!</p>';
}
Если вы украшаете свой метод с помощью
@click.option('--format', '-f', 'format_arg_name')
def plug(format_arg_name):
print(format_arg_name)
, он отобразит параметр в параметр format_arg_name
.
format_arg_name
не будет доступна в командной строке .
В то время как Click
не имеет dest
-эквивалента argparse
, он имеет определенное поведение именования аргументов, которое может быть использовано. В частности, для параметров с несколькими возможными именами он предпочтет не пунктирные имена, а как вторичные предпочтения, приоритет будет определять более длинные имена по более коротким именам.
URL: http: //click.pocoo .org / dev / parameters / # parameter-names
Итак, если вы объявите свою опцию как ...
@click.option('--format', 'not-format', type=click.Choice(['t', 'j']))
... затем щелкните по приоритетам, -dashed ('not-format'
) и вызовите свою функцию с аргументом not_format=...
.
Конечно, это также означает, что это альтернативное правописание также можно использовать в командной строке. Если это нежелательно, то я думаю, вы могли бы добавить декоратор для переименования аргументов ключевого слова:
import functools
def rename_kwargs(**replacements):
def actual_decorator(func):
@functools.wraps(func)
def decorated_func(*args, **kwargs):
for internal_arg, external_arg in replacements.iteritems():
if external_arg in kwargs:
kwargs[internal_arg] = kwargs.pop(external_arg)
return func(*args, **kwargs)
return decorated_func
return actual_decorator
Код тестирования:
if __name__ == '__main__':
@rename_kwargs(different_arg='format')
def tester(different_arg):
print different_arg
tester(format='test value')
Выход теста:
$ python test_decor.py
test value
В вашем случае это будет выглядеть так:
@click.option('--format', type=click.Choice(['t', 'j']))
@replace_kwargs(not_format='format')
def plug(not_format):
pass
return func(*args, **kwargs)
- один уровень слишком глубокий ...
– Hubert Kario
22 February 2018 в 02:07