gpt4 book ai didi

python - 为什么 Python 在涉及函数参数的数据类型时不使用 fexlibe?

转载 作者:行者123 更新时间:2023-12-01 02:49:57 25 4
gpt4 key购买 nike

这可能是一个糟糕的标题,但我的意思如下:

既然 Python 是动态类型的,为什么某些函数坚持仅与某些数据类型一起使用,并且在必要时不在内部自行处理转换?这会导致什么问题?

示例:

startswith(): Takes both strings and tuples as arguments.

  • 为什么不列出也?如果有一个充分的理由(这可能是情况),为什么它不简单地在内部转换它们?

join(): Only accepts containers of string items.

  • 为什么它不简单地执行[str(x) for x in another]

从语言的设计来看,到目前为止我的印象是它更看重灵 active 而不是纯粹性,因此上述行为似乎有点不典型。

<小时/>

另一个例子来自@VPfB

"IPv4 address (host, port) must be tuple - not a list - in socket library.".

元组是否会因为其不变性而受到青睐?是否存在元组被拒绝而仅接受列表的情况?最好是标准 Python 发行版及其模块的一部分。

最佳答案

From the design of the language, I have the impression so far that it values flexibility more than purity and therefore the above behavior seems kind of non-typical.

你的印象是错误的。 Python 是动态类型的,但也是强类型的,这意味着对象的类型始终是固定的。如果您需要不同类型的对象,则必须以一种或另一种方式进行比较。

不过,第二个问题是合理的——这是可能的。但显式优于隐式。

关于python - 为什么 Python 在涉及函数参数的数据类型时不使用 fexlibe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44905309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com