首页 / PYTHON / 断言是Python中的有效函数
断言是Python中的有效函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了断言是Python中的有效函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1127字,纯文字阅读大概需要2分钟。
内容图文
![断言是Python中的有效函数](/upload/InfoBanner/zyjiaocheng/804/79fe9a78698246d78f1db833a148f5a0.jpg)
假设我有以下代码,它接受一个距离函数和两个点,并吐出距离:
def distance(dist_fun, p1, p2):
## SOME ASSERTION HERE on dist_fun ##
## Suppose, just for this post, we've already checked p1 and p2 are
## n-tuples of integers.
assert (len(p1) == len(p2)), "Coordinates are different dimensions."
dist = dist_fun(p1, p2)
assert (dist>=0), "Negative distance is not possible."
return dist
def euclid(p1, p2): #as an example dist function.
return pow(reduce(lambda x,y: x+y, [pow((p1[i] - p2[i]), 2) for i in range(len(p1))]),0.5)
我希望能够检查一下,如果用户使用特定的距离函数,首先,实际上是一个函数.在此之后,我可以查看其他内容,但我的主要问题是:如何断言dist_fun实际上是一个函数?
如果没有简单的方法可以做到这一点,或者有另一种方法来做这种事情,请告诉我.我以前在Python中做过一些测试,但直到现在才遇到过这个问题.我已经看到函数的“类型”是“函数”,但是Python不允许我将它用作类型?回去尝试会更容易 – 除了这里吗?
解决方法:
当然,Python的座右铭是,请求宽恕而不是许可更好.所以,你完全可以指望用户传递有效的输入,或者如果你尝试调用无法调用的东西,则会抛出TypeError.
话虽这么说,如果你真的想断言某事是一个函数,我想你总是可以检查类型……
assert (callable(dist_fun))
内容总结
以上是互联网集市为您收集整理的断言是Python中的有效函数全部内容,希望文章能够帮你解决断言是Python中的有效函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。