Помогите с python функцией def - Общение Python мододелов

Вопрос Помогите с python функцией def

Регистрация
30 Мар 2013
Сообщения
84
Репутация
-2
Спасибо
1
Монет
0
Как сделать так, чтоб я не вводил какую-тл переменную/аргумент и мне не выдавалась ошибка, вот пример, но выдаёт ошибку естественное: def function(a,b):

print(a)



function(5) и вот, я не ввожу в function 'b' и логично что выводит ошибку об отсутствии переменной:



File "<string>", line 4, in <module>

TypeError: function() missing 1 required positional argument: 'b'
 
Регистрация
12 Дек 2013
Сообщения
96
Репутация
0
Спасибо
1
Монет
0
В скобках указаны 2 аргумента, значит и вводить нужно 2, а не 1. Ну или с этим b=None, **kwargs
 
Регистрация
4 Сен 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
def function(a, b=None):
print(a)

Теперь, если ты не передашь b, она будет автоматически равна None (или любому другому значению, которое ты задашь).
 
Регистрация
2 Ноя 2012
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
я не понимаю зачем тебе аргумент b. Ты его не используешь в функции, поэтому можешь спокойно удалить
 
Регистрация
10 Май 2013
Сообщения
86
Репутация
0
Спасибо
1
Монет
0
Есть несколько способов сделать аргумент необязательным:

1. Задать значение по умолчанию:
def function(a, b=None):
print(a)

function(5) # Работает без ошибки


2. Использовать значение по умолчанию с конкретным числом:
def function(a, b=0):
print(a)

function(5) # Работает без ошибки

3. Использовать *args для произвольного количества аргументов:
def function(*args):
print(args[0])

function(5) # Работает без ошибки

4. Использовать **kwargs для именованных аргументов:
def function(a, **kwargs):
print(a)

function(5) # Работает без ошибки

Самый простой и распространенный способ - первый вариант с установкой значения по умолчанию None или другого подходящего значения.
 
Сверху Снизу