假设我想在Python中实现某些附带结构的列表类,例如一个新的构造函数。 我写道:
import random
class Lis(list):
def __init__(self, n):
self = []
for i in range(n):
self.append(random.randint(0, 30))
现在执行Lis(3)
,返回一个空列表。我不知道哪里做错了。
假设我想在Python中实现某些附带结构的列表类,例如一个新的构造函数。 我写道:
import random
class Lis(list):
def __init__(self, n):
self = []
for i in range(n):
self.append(random.randint(0, 30))
现在执行Lis(3)
,返回一个空列表。我不知道哪里做错了。
self = []
。请尝试以下操作。import random
class Lis(list):
def __init__(self, n):
for i in range(n):
self.append(random.randint(0, 30))
如果你想从对象调用中返回一个列表
class MyClass(object):
def __init__(self):
print "never called in this case"
def __new__(cls):
return [1,2,3]
obj = MyClass()
print(obj)
或者如果你想要一个修改后的对象,可以尝试:
class MyClass:
def __getitem__(self, key):
not_self = []
for i in range(n):
not_self.append(random.randint(0, 30))
return not_self
myobj = MyClass()
myobj[3] #Output: 6
我不确定像你这样使用self是否健康。
super().__init__()
- albar