是否可以在另一个变量的赋值中赋值?

2024-09-28 01:23:41 发布

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

我有两个问题:

1)我想写一个这样的语句:superVar = [subVar1 = 'a', subVar2 = 'b']

在这个声明之后,我想:

superVar = ['a', 'b']

subVar1 = 'a'

subVar2 = 'b'

这在python中是可以实现的吗?你知道吗

2)我想在类的init函数中执行以下操作:

self.superVar = [v1 = 'a', v2 = 'b']

在这个声明之后,我想:

self.superVar = ['a', 'b']

self.superVar.v1 = 'a'

self.superVar.v2 = 'b'

也就是说,让“superVar”成为其他变量名称的一部分。你知道吗

你可能已经猜到了,我真正想做的是上面的(2)。(1) 这只是第一步,如果(2)不可能的话,我会很高兴的。你知道吗

非常感谢! 高拉夫


Tags: 函数self名称声明init语句v2v1
3条回答

你是说字典吗?你知道吗

superVar = {'subVar1': 'a', 'subVar2': 'b'}
superVar['subVar1']
# 'a'
superVar['subVar2']
# 'b'

在课堂上:

class Foo(object):
    def __init__(self, a, b):
        self.superVar = {'subVar1' : a, 'subVar2' : b}


bar = Foo('one', 'two')
bar.superVar.values()
# ['one', 'two']

如果您想保持秩序,可以使用collections模块中的ordered dictionary。你知道吗

>>> from collections import namedtuple
>>> T = namedtuple('supervar', ['v1', 'v2'])
>>> superVar = T('a', 'b')
>>> superVar.v1
'a'
>>> superVar.v2
'b'

为什么不为您的子变量创建一个字典,并使superVar成为子变量字典中的值列表呢?你知道吗

d = {'subVar1': 'value1', 'subVar2': 'value2'}
superVar = d.values()

相关问题 更多 >

    热门问题