gpt4 book ai didi

python - 我可以将自己作为python中类方法的第一个参数传递吗

转载 作者:太空狗 更新时间:2023-10-29 22:22:16 26 4
gpt4 key购买 nike

我正在尝试理解类方法。从我读到的内容来看,对于类方法,我们在定义时必须将 cls 作为第一个参数传递(类似于我们将 self 作为第一个参数传递的实例方法)。但是我看到即使我将 self 作为类方法的第一个参数传递,它也能工作。有人可以向我解释这是如何工作的吗?

我看到一些用法,他们将类定义为类方法,但他们仍然将 self 作为第一个参数而不是 cls 传递。我正在尝试了解用法。

#!/usr/bin/python


class A(object):
def foo(self,x):
print "executing foo(%s,%s)"%(self,x)

@classmethod
def class_foo(self,x):
print "executing class_foo(%s,%s)"%(self,x)


>>> A.class_foo(2)
executing class_foo(<class '__main__.A'>,2)
>>>

最佳答案

selfcls 的使用只是一种命名约定。您可以随心所欲地调用它们(别这样!)。因此,您仍在传递类对象,只是将其命名为 self,而不是 cls

99.999% 的 Python 程序员会希望你称它们为 selfcls,如果你称它们为 self< 以外的任何东西,很多 IDE 也会提示cls所以请遵守约定。

关于python - 我可以将自己作为python中类方法的第一个参数传递吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27186296/

26 4 0
文章推荐: c# - 如何在 Asp.net MVC 5 中填充没有 Entity Framework 的模型
文章推荐: c# - 在 View 模型中使用 Caliburn 的 conductor 时窗口标题被覆盖