当我将参数传递给函数时,据我了解,该函数不了解我要使用的数据类型。问题的本质是,我可以明确指定列表/字典/元组作为参数传递给函数......并且在我使用列表/字典/元组的函数体中......?
这是我得到的:
def print_magicians (magicians):
for magician in magicians:
print(magician)
def great_magicians (magicians):
for i in range(len(magicians)):
temp = magicians[i]
magicians[i] = "Great " + temp
magicians_list = ["Гудини", "Коперфильд", "Блейн"]
print_magicians(magicians_list)
great_magicians(magicians_list)
print_magicians(magicians_list)
函数 def great_magicians (magicians) 我接受或期望任何数据类型作为参数(我不知道如何正确表达),因此我不能像处理列表一样使用它(调用它的方法)。例如,如果不是列表,而是字符串或数字作为参数传递到那里,那么会发生什么?在 C 之后,类似的语言中有严格类型的不是很清楚。
你需要@functools.singledispatch
结论:
除了在函数参数中显式指定参数类型外,您还可以检查函数内部的参数类型。例如:
您还可以显式指定返回类型。例如: