我正在编写一个类定义来完成以下任务:
1)构造函数:接受.csv文件的文件名作为参数,从文件中的信息创建数据框并将其永久存储在对象中,设置数据的列名frame,将索引设置为个人姓名。内部数据框是私有属性 - 请勿更改此内容。
2)__ in_frame :私有方法,根据名称检查数据框中是否存在联系人(您不需要修改它,但您可能需要在其他方法中使用它) )
3)get_contact_info :接受名称作为参数,返回包含该联系人的电话号码和电子邮件的列表,您必须考虑用户请求不存在的联系人的情况
4)get_phone :接受名称作为参数,返回该联系人的电话号码,您必须考虑用户请求不存在的联系人的情况
5)get_email :接受名称作为参数,返回该联系人的电子邮件,您必须考虑用户请求不存在的联系人的情况
6)get_all_phones :不带参数,返回包含数据集中所有电话号码的系列
7)get_all_emails :不带参数,返回包含数据集中所有电子邮件的系列
8)add_change_contact :将名称,电话和电子邮件作为参数,如果数据框尚未存在,则应将联系人添加到数据框中,否则应修改现有联系人
9)delete_contact :接受名称作为参数并从数据框中删除联系人,您必须考虑用户请求不存在的联系人的情况
10)__str __ :返回内部数据框的字符串表示
以下是我的以下代码:
import pandas as pd
class Contact_Frame:
def __init__(self, filename):
self.__frame = pd.read_csv(filename)
self.__frame.columns = ['Name','Phone','Email']
self.__frame.set_index('Name')
def __in_frame(self, name):
return name in self.__frame.index
def get_contact_info(self, name):
if(__in_frame(name)):
return self.__frame[name]
def get_phone(self, name):
if(__in_frame(name)):
return self.__frame[name:'Phone']
def get_email(self, name):
return self.__frame[name:'Email']
def get_all_phones(self):
return self.__frame('Phone')
def get_all_emails(self):
return self.__frame('Email')
def add__change_contact(self, name, phone, email):
self.fame[name] = [phone, email]
def delete_contact(self, name):
if(__in_frame(name)):
self.__frame.drop(name)
def __str__(self):
print (self.__frame)
当我运行这些时,我得到了几个错误,我的代码中存在什么算法/语法错误阻止我的函数运行?
答案 0 :(得分:0)
要从该类中访问类变量和函数,必须使用self。
例如,在delete_contact中你有:
if(__in_frame(name)):
__ in_frame未在功能范围内定义。将其替换为
if(self.__in_frame(name)):