Как я могу сказать своей функции сделать что-то конкретное, когда она не получает параметров? - PullRequest
1 голос
/ 12 октября 2019

Итак, у меня есть следующая функция, которая должна напоминать уже реализованную функцию «печати» в Python. (Я знаю, что глупо делать функцию, которая использует только предопределенную функцию, но я занимаюсь разными вещами) Я хочу сделать с моей функцией следующее: заставить ее работать так же, как предопределенная. То есть, когда функция print вызывается без параметров, я бы хотел, чтобы она печатала пустую строку, как это делает print (). Как мне это сделать?

def print_str( string, how_many_times, tail ):
    print ( string * how_many_times, end = tail )

Ответы [ 2 ]

2 голосов
/ 12 октября 2019

print не принимает ни одной строки, она принимает 0 или большинство строк в качестве аргумента. end имеет разумное значение по умолчанию. Вы можете представить (упрощенное) определение

def print(*args, end='\n'):
    ...

Вам нужно сделать то же самое для своего. Разумным значением по умолчанию для how_many_times будет 1. Если вы не хотите, чтобы print_str принимал несколько аргументов, "" будет разумным значением по умолчанию для string.

def print_str(string="", how_many_times=1, tail='\n'):
    print(string * how_many_times, end=tail)
.
1 голос
/ 12 октября 2019

Вы можете сделать что-то вроде этого:

def myfunc(a=None):
   if a == None:
      print()
   else:
      print("hi")

Если аргументы не представлены, он ничего не печатает, но если аргумент дан, он печатает 'hi'.

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