gpt4 book ai didi

python - python 中方法相对于函数的优势

转载 作者:行者123 更新时间:2023-12-01 01:29:52 24 4
gpt4 key购买 nike

我有一些 R 经验,最近开始学习一些 Python。我知道 python 中的方法和函数以及如何在对象上调用它们之间存在一些差异,但我没有看到在 python 中使用一般方法的好处。

对我来说,使用方法只会增加另一层困惑,因为在 R 中,我只需使用函数就可以完美地编写所有内容。但现在,在Python中,在对象上应用方法的语法不同了,一些方法改变了它们所调用的对象,而一些方法仅适用于某些特殊类的对象。

所以,请原谅我恭敬地问:是否有人开发方法只是为了让一切变得更复杂一点,或者为什么有人开发方法?

最佳答案

我也认为根据我的理解这是固执己见的(如果认为如此,我会很乐意删除我的答案),但我确实相信他们每个人都有自己的位置。 Judging solely by the merits of their differences ,方法不存在于类之外,因此它们特定于类本身。

考虑这个类Person:

Class Person():
# ...
def eat(self, food):
return self.poop(food)

然后您可以调用john.eat(burger),对于任何新手来说,它都是完全可读的代码,可以维护新的代码库。但是函数 eat(john, Burger) 可能更像是一个大脑放屁,因为现在您需要辨别哪个对象正在执行 eat() 函数以及哪个对象正在返回便便()。这可能会提示您不必要地查看 eat() 定义。此外,eat()Food 类的上下文中没有意义,因此它实际上不需要成为所有对象都可以访问的函数。因此,您可以处理这方面的范围界定。

也就是说,更通用的函数,例如 type()id() 存在于类之外可能更有意义,因为它们可以应用于更广泛的领域。类的范围,并成为 DRY 定义的良好实践。

总而言之,这很大程度上取决于您如何构建代码。因此,恕我直言,每次使用都有固执己见。

关于python - python 中方法相对于函数的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52990091/

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