我有一个简单的python类,它由一些属性和一些方法组成。我需要的是从类属性中创建一个列表(仅限!)
Class A():
def __init__(self, a=50, b="ship"):
a = a
b = b
def method1():
.....
我想要一个清单:
[50,“ship”]
答案 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']