Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数如何调用同一类python中的其他函数_Python - Fatal编程技术网

函数如何调用同一类python中的其他函数

函数如何调用同一类python中的其他函数,python,Python,我想创建一个包含一些函数的类,其中一个函数调用类中的另一个函数,类似这样: import pandas as pd class Prep: def __init__(self, data): self.data = data def slicing(self): sliceInput = self.data.iloc[:, 1:8] sliceTarget = self.data.iloc[:, 8] retu

我想创建一个包含一些函数的类,其中一个函数调用类中的另一个函数,类似这样:

import pandas as pd


class Prep:
    def __init__(self, data):
        self.data = data

    def slicing(self):
        sliceInput = self.data.iloc[:, 1:8]
        sliceTarget = self.data.iloc[:, 8]
        return sliceInput, sliceTarget

    def convert(self):
        convertInput = sliceInput.to_numpy(float)
        convertTarget = sliceTarget.to_numpy(int)
        return convertInput, convertTarget

if __name__ == "__main__":
    data_frame = pd.read_csv('data_manual.csv', sep=';')

    tes = Prep(data_frame)
    print(tes.convert())
我犯了这样的错误
name错误:未定义名称“sliceInput”

如何在函数中调用
convertInput
convertTarget

为什么会出现错误,我完全不明白。

您需要在
covert
中添加
sliceInput,sliceTarget=self.slicing()

import pandas as pd


class Prep:
    def __init__(self, data):
        self.data = data

    def slicing(self):
        sliceInput = self.data.iloc[:, 1:8]
        sliceTarget = self.data.iloc[:, 8]

        return sliceInput, sliceTarget

    def convert(self):
        sliceInput, sliceTarget = self.slicing()
        convertInput = sliceInput.to_numpy(float)
        convertTarget = sliceTarget.to_numpy(int)
        return convertInput, convertTarget

if __name__ == "__main__":
    data_frame = pd.read_csv('data_manual.csv', sep=';')

    tes = Prep(data_frame)
    print(tes.convert())

只需将
self
添加到定义的属性中即可。 此外,由于在实例化
Prep
对象后,
数据
是不可变的,因此如果只在
\uuuu init\uuu()方法中初始化切片变量一次,性能会更好

将熊猫作为pd导入
备课:
定义初始化(自身,数据):
self.data=数据
self.sliceInput=data.iloc[:,1:8]
self.sliceTarget=data.iloc[:,8]
def切片(自):
返回self.sliceInput,self.sliceTarget
def转换(自):
convertInput=self.sliceInput.to_numpy(浮点)
convertTarget=self.sliceTarget.to_numpy(int)
返回convertInput,convertTarget
如果名称=“\uuuuu main\uuuuuuuu”:
data_frame=pd.read_csv('data_manual.csv',sep=';'))
tes=准备(数据帧)
打印(tes.convert())

可能是
self.sliceInput=self.data.iloc[:,1:8]
self.sliceTarget=self.data.iloc[:,8]
将实现这一目的