python - python,从另一个类调用方法
问题描述
我试图sum_method
从我的评估类调用函数到我的主要函数,但是我遇到了很多错误。我想将用作我的函数new_data
的数据参数。sum_method
评价类:
class evaluation():
def __init__(self, data):
self.data = data
def sum_method(self):
montant_init = self.data.loc[self.data['Initiateur'] == 'Glovoapp', 'Montant (centimes)'].sum()
print(montant_init)
主类:
class main(evaluation):
new_data.to_csv("transactions.csv", index=False)
self.data = new_data
def call_sum(self, new_data):
init_eval = evaluation.sum_method(self=new_data)
print(init_eval)
init_evalobj = main()
init_evalobj.call_sum()
解决方案
我建议对这两个类进行一些更改,以将 .data 成员变量封装在基类中。我的偏好还是将计算与显示分开,因此将所有打印语句保留在 call_sum() 函数中。
class evaluation:
def __init__(self, data):
self.data = data
def sum_method(self):
montant_init = self.data.loc[self.data['Initiateur'] == 'Glovoapp', 'Montant (centimes)'].sum()
return montant_init
class main(evaluation):
def __init__(self):
# Reduce csv content to what's needed for analysis
data_csv = pd.read_csv('transactions.csv')
# --> removing unnecessary data
new_data = data_csv[['Opération', 'Initiateur', 'Montant (centimes)', 'Monnaie',
'Date', 'Résultat', 'Compte marchand', 'Adresse IP Acheteur', 'Marque de carte']]
# --> saving changes...
new_data.to_csv("transactions.csv", index=False)
super().__init__(new_data) //Initialize the base class
def call_sum(self):
print('Glovoapp "montant" generated')
init_eval = self.sum_method() //Call the method from the base class
print(init_eval)
推荐阅读
- entity-framework - 实体框架准备查询
- reactjs - React TypeScript:路线位置和子属性的正确类型
- c++ - 不能让 Assimp 在 Windows“链接器问题”上工作?(与 2019 年相比)
- node.js - 事件发射不起作用 io.sockets.emit()
- linux - 从 /proc/ 读取
- python - 在文本文件中查找重复行
- html - 在 create-react-app 中将图像直接加载到 index.html 的问题
- paypal - PayPal 订阅 IPN 事件混淆
- angular - 将 Firebase 存储图像 URL 设置为 img 标签的 src
- nmap - 如何使用 nmap 在我的网络上发现 Phillips Hue Wifi 灯泡?