类属性VALUES到列表

时间:2017-12-17 13:24:50

标签: python python-2.7

我有一个简单的python类,它由一些属性和一些方法组成。我需要的是从类属性中创建一个列表(仅限!)

Class A():
    def __init__(self, a=50, b="ship"):
        a = a
        b = b

    def method1():
         .....

我想要一个清单:

[50,“ship”]

2 个答案:

答案 0 :(得分:1)

def asList(self):
    return [a,b,....] # will create a new list on each call

除非你为你的类创建一个__init__(...)或工厂方法或smth aloke来分解这个列表,否则你将无法从列表中创建一个新对象。见how-to-overload-init-method-based-on-argument-type

答案 1 :(得分:1)

另一种可能更通用的解决方案是:

def asList(self):
    [value for value in self.__dict__.values()]

语法正确的完整示例:

class A:
    def __init__(self, a=50, b="ship"):
        self.a = a
        self.b = b

    def as_list(self):
        return [value for value in self.__dict__.values()]

a = A()
print a.as_list()

输出:

[50, 'ship']