gpt4 book ai didi

python - 如何将参数传递给第一个参数为self的python函数?

转载 作者:行者123 更新时间:2023-11-28 19:42:52 25 4
gpt4 key购买 nike

以下面的简化示例为例。

class A(object):
variable_A = 1
variable_B = 2

def functionA(self, param):
print(param+self.variable_A)

print(A.functionA(3))

在上面的例子中,我得到以下错误

Traceback (most recent call last):
File "python", line 8, in <module>
TypeError: functionA() missing 1 required positional argument: 'param'

但是,如果我在函数声明中删除 self,我将无法访问变量 variable_Avariable_B类,我得到以下错误

Traceback (most recent call last):
File "python", line 8, in <module>
File "python", line 6, in functionA
NameError: name 'self' is not defined

那么,我如何访问类变量而不在此处出现参数错误?我正在使用 Python 3,仅供引用。

最佳答案

你必须先创建类A的一个实例

class A(object):
variable_A = 1
variable_B = 2

def functionA(self, param):
return (param+self.variable_A)


a = A()
print(a.functionA(3))

如果不想使用实例,可以使用静态方法装饰器。静态方法是方法的特例。有时,您会编写属于某个类的代码,但根本不使用该对象本身。

class A(object):
variable_A = 1
variable_B = 2

@staticmethod
def functionA(param):
return (param+A.variable_A)

print(A.functionA(3))

另一种选择是使用类方法装饰器。类方法是未绑定(bind)到对象的方法,而是绑定(bind)到类的方法!

class A(object):
variable_A = 1
variable_B = 2

@classmethod
def functionA(cls,param):
return (param+cls.variable_A)

print(A.functionA(3))

关于python - 如何将参数传递给第一个参数为self的python函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41935237/

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