如何以较短的方式设置长时间列表的属性?

2024-09-30 01:30:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须这样做

class AuthTestings(TestClass):
    def setUp(self):
        ...
        self.user = user
        self.user2 = user2
        self.token = token
        self.token2 = token2
        self.myval = myval
        ...
    def test_smth(self):
        ...
#and .....
  • 我的目标以更短的方式为自我添加属性
  • 也许我可以用setattr
  • 或者其他缩短我工作时间的方法
from varname.helpers import Wrapper

x =  [user,user2,user3,token,token2,token3,client]
    for i in x:
        i = Wrapper(i)
        setattr(self,i.name,i.value) # this don't work att al because i.name return i instead of user, user2...
  

Tags: nametestselftokendefsetupwrapperclass
1条回答
网友
1楼 · 发布于 2024-09-30 01:30:31

如评论中所述,一种解决方案是使用字典:

d = {'user': user, 'user2': user2, ...}
for name, value in d.items():
    setattr(self, name, value)

另一种解决方案是在globals()locals()名称空间中查找名称:(根据您的问题,不清楚这些名称是局部变量还是全局变量)

x = ['user', 'user2', ...]
for name in x:
    setattr(self, name, locals()[name])

相关问题 更多 >

    热门问题