• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Keyword-Only Parameters in Python function

Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

☕

*Memos:


You can set

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

for a function as shown below:

*Memos:

  • A keyword-only parameter is the parameter which only accepts a keyword argument.
  • All the parameters after * are keyword-only parameters.
  • Keyword-only parameters are added from Python 3.0.

  • Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    officially says keyword-only arguments but they're actually keyword-only parameters.
The parameters without default values:


def func(fname, lname, *, age, gender): pass
def func(*, fname, lname, age, gender): pass
# No error

def func(fname, *, lname, age, *, gender): pass
# SyntaxError: * argument may appear only once

def func(fname, lname, age, gender, *): pass
# SyntaxError: named arguments must follow bare *

def func(fname, lname, *, age, gender):
print(fname, lname, age, gender)

func("John", "Smith", age=36, gender="Male")
func("John", "Smith", **{"age":36, "gender":"Male"})
func("John", "Smith", gender="Male", age=36)
func("John", "Smith", **{"gender":"Male", "age":36})
func(fname="John", lname="Smith", age=36, gender="Male")
func(**{"fname":"John", "lname":"Smith", "age":36, "gender":"Male"})
func(age=36, gender="Male", fname="John", lname="Smith")
func(**{"age":36, "gender":"Male", "fname":"John", "lname":"Smith"})
# John Smith 36 Male

func("John", "Smith", 36, "Male")
# TypeError: func() takes 2 positional arguments but 4 were given

def func(*, fname, lname, age, gender):
print(fname, lname, age, gender)

func(fname="Anna", lname="Brown", age=27, gender="Female")
func(**{"fname":"Anna", "lname":"Brown", "age":27, "gender":"Female"})
func(age=27, gender="Female", fname="Anna", lname="Brown")
func(**{"age":27, "gender":"Female", "fname":"Anna", "lname":"Brown"})
# Anna Brown 27 Female

func("Anna", "Brown", 27, "Female")
# TypeError: func() takes 0 positional arguments but 4 were given
The parameters with default values:


def func(fname="John", lname="Smith", *, age=36, gender="Male"): pass
def func(*, fname="John", lname="Smith", age=36, gender="Male"): pass
# No error

def func(fname="John", *, lname="Smith", age=36, *, gender="Male"): pass
# SyntaxError: * argument may appear only once

def func(fname="John", lname="Smith", age=36, gender="Male", *): pass
# SyntaxError: named arguments must follow bare *

def func(fname="John", lname="Smith", *, age=36, gender="Male"):
print(fname, lname, age, gender)

func()
# John Smith 36 Male

func("Anna", "Brown", age=27, gender="Female")
func("Anna", "Brown", **{"age":27, "gender":"Female"})
func("Anna", "Brown", gender="Female", age=27)
func("Anna", "Brown", **{"gender":"Female", "age":27})
func(fname="Anna", lname="Brown", age=27, gender="Female")
func(**{"fname":"Anna", "lname":"Brown", "age":27, "gender":"Female"})
func(age=27, gender="Female", fname="Anna", lname="Brown")
func(**{"age":27, "gender":"Female", "fname":"Anna", "lname":"Brown"})
# Anna Brown 27 Female

func("Anna", "Brown", 27, "Female")
# TypeError: func() takes from 0 to 2 positional arguments but 4 were given

def func(*, fname="John", lname="Smith", age=36, gender="Male"):
print(fname, lname, age, gender)

func()
# John Smith 36 Male

func(fname="Anna", lname="Brown", age=27, gender="Female")
func(**{"fname":"Anna", "lname":"Brown", "age":27, "gender":"Female"})
func(age=27, gender="Female", fname="Anna", lname="Brown")
func(**{"age":27, "gender":"Female", "fname":"Anna", "lname":"Brown"})
# Anna Brown 27 Female

func("Anna", "Brown", 27, "Female")
# TypeError: func() takes 0 positional arguments but 4 were given


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу