鸭子类型
def calc(a, b, c):return (a + b) * c
>>> a = calc(1, 2, 3)
>>> b = calc(, , 2)
>>> c = calc('love', 'FishC', 3)
>>> print(a)
9
>>> print(b)
>>> print(c)
loveFishCloveFishCloveFishC
这段代码是怎么体现鸭子类型的呀 首先你需要理解什么是鸭子类型是什么意思
所谓鸭子类型就是不关注参数的类型,只关注变量的行为操作
然后再看这段程序
calc函数传入三个参数(a, b, c),只要这三个参数能有进行(a + b) * c运算操作就可以执行,不会报错,不管这上参数是什么类型。
a = calc(1, 2, 3)传入的参数都是int类型,能够进行算数运算,可以执行
b = calc(, , 2)传入的前两个参数是列表,第三个参数是int,对于列表可以进行+运算,是拼接操作,然后*运算是复制拼接
c = calc('love', 'FishC', 3)传入的前两个参数是字符串,第三个参数是int,对于字符串可以进行+运算,是拼接操作,然后*运算是复制拼接
这不就体现了鸭子类型么? sunrise085 发表于 2020-8-17 17:44
首先你需要理解什么是鸭子类型是什么意思
所谓鸭子类型就是不关注参数的类型,只关注变量的行为操作
大佬,学习到了{:10_256:} sunrise085 发表于 2020-8-17 17:44
首先你需要理解什么是鸭子类型是什么意思
所谓鸭子类型就是不关注参数的类型,只关注变量的行为操作
谢谢知道啦!
页:
[1]