gpt4 book ai didi

python - 将实例变量设置为类函数的默认参数

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:47 31 4
gpt4 key购买 nike

我有一个带 4 个参数的类函数,实际上是所有类成员变量。通常一次只修改其中一个参数,其余时间将默认值(类成员变量的当前值)传递给函数/写出,即使它们没有改变。

我认为最好的办法是让这些类成员变量成为默认变量,但我很难获得最好的语法。下面的代码产生了我想要的行为——使用类成员变量作为函数的默认参数。但它很丑:

class test:
def __init__(self, a, b):
self.a = a
self.b = b

def testfunc(self, param = None):
if not param:
param = self.a
print(param)


if __name__ == '__main__':
a1 = test(1, 3)
a1.testfunc()
a2 = test(5, 5)
a2.testfunc()
#(prints 1 and 5 when called)

我想使用以下内容:

    def testfunc(self, param = self.a):
print(param)

但这给出了错误:

NameError: name 'self' is not defined

执行此操作的更好方法是什么?

最佳答案

你的第一次尝试是 pythonic,我唯一要改变的是测试:

 def testfunc(self, param = None):
if param is None:
param = self.a
print(param)

False 测试的问题是零和空容器(包括空字符串)都解析为 False

如果您有大量这些,请参阅 Understanding kwargs in Python

关于python - 将实例变量设置为类函数的默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31568659/

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