如何更新Python类中使用的初始化变量?

时间:2019-11-25 22:23:34

标签: python oop

我有一堂课,有一个清单。我试图在另一个类中返回列表,但是它将列表作为原始的空列表返回,而不是带有元素的新列表(已解决!)。

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)

2 个答案:

答案 0 :(得分:1)

您的代码中有很多错误:

  1. 首先,您应该写def __init__(self, thing1):而不是def __init__:
  2. 您必须调用方法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)