我有一堂课,有一个清单。我试图在另一个类中返回列表,但是它将列表作为原始的空列表返回,而不是带有元素的新列表(已解决!)。
class Whatever:
def __init__(self,thing):
self.list=[]
self.thing=thing
def list_append(self):
df1=pd.read_csv('job.py')
df2=pd.read_csv('home.py')
self.list.append([df1,df2])
return self.list
def new_function(self):
return self.list
function=Whatever('thing1')
function_output=function.new_function()
print(function_output)
答案 0 :(得分:1)
您的代码中有很多错误:
def __init__(self, thing1):
而不是def __init__:
list_append()
来填充list
。这是工作代码:
class Whatever:
def __init__(self, thing1):
self.list=[]
self.thing=thing1
def list_append(self):
df1=pd.read_csv('job.py')
df2=pd.read_csv('home.py')
self.list.append([df1,df2])
return self.list
def new_function(self):
self.list_append() # to call the above method
return self.list
function=Whatever(thing1)
function_output=function.new_function()
print(function_output)
测试:假设
df1 = "hello"
,df2 = "world"
和thing1 = "good"
。上面的代码将产生结果[['hello', 'world']]
。
答案 1 :(得分:0)
您不是在不同的类中而是在不同的方法中调用它,但这可能只是术语错误,所以没什么大不了的。但是最重要的错误可能是:
您正在尝试调用list_append函数的输出,但是您从未调用过它,因此您必须在新函数中执行以下操作:
def function(foo):
return(foo)
def new_function(foo_foo):
function(foo)