![]() |
1
33
正如unwind所指出的,具有默认值的关键字参数可能会有很长的路要走。 我还将声明,在我看来,非常担心什么类型被传递到方法中违背了Python的精神。在Python中,我认为使用duck类型更为普遍——询问对象可以做什么,而不是问它是什么。 因此,如果您的方法可以接受一个字符串或元组,您可以这样做:
然后你可以这样做:
尽管这样的API有时表示存在设计问题。 |
![]() |
2
37
现在,除非您试图用Python语法编写C++代码,否则您需要重载什么?
我认为恰恰相反,重载只是使强类型语言更像Python所必需的。在python中,有关键字参数,
例如,请参见: What is a clean, pythonic way to have multiple constructors in Python? |
![]() |
3
22
您不需要函数重载,因为您有*args和**kwargs参数。 事实上,函数重载是基于这样一种思想:传递不同的类型,您将执行不同的代码。如果您有一种动态类型语言(如python),那么您不应该根据类型来区分,而是应该处理接口及其与您编写的代码的一致性。 例如,如果您有可以处理整数或整数列表的代码,则可以尝试对其进行迭代,如果无法进行迭代,则假定它是整数并继续。当然,它可以是一个浮点,但是就行为而言,如果一个浮点和一个int看起来是相同的,那么它们可以互换。 |
![]() |
4
6
通常,您会看到建议使用带有默认值的关键字参数。看看那个。 |
![]() |
5
6
您可以将可变容器数据类型传递给函数,它可以包含您想要的任何内容。 如果您需要不同的功能,请对函数进行不同的命名,或者如果您需要相同的接口,只需编写一个接口函数(或方法),根据接收到的数据适当地调用函数。 我花了一段时间才适应了来自Java的这一点,但它并不是一个“大障碍”。 |
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |