我正在编写一个类定义来完成以下任务:
1)构造器:接受.csv文件的文件名作为参数,从文件中的信息创建数据框架并将其永久存储在对象中,为数据帧设置列名,将索引设置为个人的名称。内部数据框架是一个私有属性--不要改变这一点。
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)当我运行这些错误时,我的代码中会出现哪些算法/语法错误来阻止我的函数运行?
发布于 2018-04-05 20:01:24
为了从该类中访问类变量和函数,必须使用self。
例如,在delete_contact中有:
if(__in_frame(name)):函数范围内没有定义__in_frame。将此替换为
if(self.__in_frame(name)):https://stackoverflow.com/questions/49680490
复制相似问题