gpt4 book ai didi

Python自动复制初始化参数

转载 作者:太空狗 更新时间:2023-10-30 00:03:13 24 4
gpt4 key购买 nike

Python 类有一个名为init 的初始化方法。初始化程序经常接受多个参数,这些参数被复制到同名属性。

def __init__(self, a, b, c, d):
self.a = a
self.b = b
self.c = c
self.d = d

这是很多工作,对我来说感觉“非Pythonic”。有没有办法使这个过程自动化?

我想也许沿着这些方向的东西(下面的伪代码)可以工作:

for x in __init__.argument_names:
exec('self.' + x + ' = ' + x)

我知道以这种方式调用 exec 不是好的做法。但也许 Python 开发团队已经创建了一种安全且等效的方法来自动执行此任务。

有什么建议吗?

全能

最佳答案

您可以使用 inspect 实现此目的模块(编辑:正如评论中正确指出的那样,您实际上不需要导入此模块):

class A:
def __init__(self, a, b, c, d):
args = locals().copy()
del args['self']
self.__dict__.update(args)

a = A(1,2,3,4)
print a.a
print a.b
print a.c
print a.d

python test.py
1
2
3
4

您可以将它包装到一个实用函数中,只需记住不要采用 currentframe 而是采用 getouterframes

关于Python自动复制初始化参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18291403/

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