gpt4 book ai didi

python - 使用 *args 和 **kwargs 在 Python 中初始化类 Object() 的正确方法

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:55 24 4
gpt4 key购买 nike

我正在尝试用 Python 中的 *args**kwargs 进行一些类初始化,我想出了一个 对象没有名为 x 的属性 错误。

class APIViewActions():
def __init__(self, *args, **kwargs):
list = kwargs.get('list', False)
create = kwargs.get('create', False)
retrieve = kwargs.get('retrieve', False)
update = kwargs.get('update', False)
partial_update = kwargs.get('partial_update', False)
destroy = kwargs.get('destroy', False)

def retrieve_actions(self):
actions = {}

if self.list:
actions['get'] = 'list'

if self.create:
actions['post'] = 'create'

if self.retrieve:
actions['get'] = 'retrieve'

if self.update:
actions['patch'] = 'update'

if self.partial_update:
actions['patch'] = 'partial_update'

if self.destroy:
actions['delete'] = 'destroy'

return actions

APIViewActions = APIViewActions(delete=True)

所以,当它被调用时:

APIViewActions.retrieve_actions()

我收到以下错误:

AttributeError: 'APIViewActions' 对象没有属性 'list'

当然,self.list 应该是 False?我基本上希望 APIViewActions() 调用被松散地定义,例如,可以这样调用:

APIViewActions = APIViewActions(delete=True)

APIViewActions = APIViewActions(list=true, delete=True)

这将如何实现?

最佳答案

self 在类里面不见了。

class APIViewActions():
def __init__(self, *args, **kwargs):
self.list = kwargs.get('list', False)
self.create = kwargs.get('create', False)
self.retrieve = kwargs.get('retrieve', False)
self.update = kwargs.get('update', False)
self.partial_update = kwargs.get('partial_update', False)
self.destroy = kwargs.get('destroy', False)

关于python - 使用 *args 和 **kwargs 在 Python 中初始化类 Object() 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58557448/

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