gpt4 book ai didi

python - 检查两个 python 函数(或方法)的兼容性

转载 作者:行者123 更新时间:2023-11-28 20:54:35 24 4
gpt4 key购买 nike

是否有可能检查两个 python 函数是否可以互换?例如,如果我有

def foo(a, b):
pass
def bar(x, y):
pass
def baz(x,y,z):
pass

我想要一个函数is_compatible(a,b),它在传递 foo 和 bar 时返回 True,但在传递 bar 和 baz 时返回 False,因此我可以在实际调用之前检查它们是否可互换他们中的任何一个。

最佳答案

兼容性的基础是什么?参数的数量? Python 有可变长度的参数列表,所以你永远不知道两个函数在这个意义上是否兼容。数据类型? Python 使用鸭子类型,因此除非您在函数内部使用 isinstance 测试或类似测试,否则对兼容性测试可能基于的数据类型没有任何限制。

简而言之:不。

你应该编写好的文档字符串,这样你的 API 的任何用户都知道他给你的函数必须做什么,然后你应该相信你得到的函数的行为是正确的。任何“兼容性”检查要么会排除可能有效的功能,要么会给您一种“一切都应该如此”的错觉。

暴露 API 的 Pythonic 方式是:编写好的文档,让人们知道他们需要知道什么,并相信他们做的是正确的事。在关键位置您仍然可以使用 try: except:,但是任何因为不关心阅读文档而滥用您的 API 的人不应该被给予错误的安全感。对于确实阅读了您的文档并希望以完全可接受的方式使用它的人,不应以他们声明函数的方式为由拒绝使用它的可能性。

关于python - 检查两个 python 函数(或方法)的兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1022124/

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