在一个类中,在__repr__
构造函数中,python对什么是字符串和什么不是字符串感到困惑。这是一个学校项目,别担心,我实际上不会在这里处理社会保险号码。你知道吗
以下代码无效:
def __repr__(self):
return (
'\nName:\t'+self.getName()+':\t\t\tNurse\n'+
'\tPhone:\t\t\t\t\t\t('+str(self.getPhoneNumber())[0:3]+') '+
str(self.getPhoneNumber())[3:6]+'-'+str(self.getPhoneNumber())[6:10]+'\n'+
'\tOverseeing Doctor:\t\t\t'+self.getDoctor()+'\n'
'\tDescription:\t\t\t\t'+self.getDesc()+'\n'+
'\tBirthday:\t\t\t\t\t'+self.getBDay()+'\n'+
'\tSocial Security Number:\t\t***-**-'+str(round(self.getSocial()))[5:9]+'\n'+#error is in this line
str(self._cases[i] for i in range(len(self._cases)))
)
但是,在另一个类中,我有几乎相同的代码:
def __repr__(self):
return (
'\nName:\t'+self.getName()+':\t\t\tDoctor\n'+
'\tPhone:\t\t\t\t\t\t('+str(self.getPhoneNumber())[0:3]+') '+
str(self.getPhoneNumber())[3:6]+'-'+str(self.getPhoneNumber())[6:10]+'\n'+
'\tDepartment:\t\t\t\t\t'+self.getDepartment()+'\n'
'\tDescription:\t\t\t\t'+self.getDesc()+'\n'+
'\tBirthday:\t\t\t\t\t'+self.getBDay()+'\n'+
'\tSocial Security Number:\t\t***-**-'+str(self.getSocial())[5:9]+'\n'+
str(self._cases)+'\n'
)
请告诉我两者有什么不同,以及如何修复初始代码。你知道吗
您声称此部分有错误:
但是没有告诉我们任何关于您的实际错误的信息;错误伴随着回溯和异常消息,但是如果没有这些详细信息,我们就不能告诉您任何可能出错的信息。可能
self.getSocial()
返回一个字符串,round()
只接受浮点数:您需要给我们这个错误消息以及您的输入(
self.getSocial()
的返回值)和预期的输出,这样我们就可以帮助您解决这部分问题;也许您误解了round()
的作用。你知道吗接下来,您将尝试将生成器表达式转换为字符串:
括号之间的所有内容都是一个延迟求值循环,但是
str()
不会为您求值。你知道吗如果要生成一个包含所有大小写的字符串,例如,与tab连接在一起,请改用
str.join()
:您真的应该考虑使用^{} 模板;它将使改进和可读的代码。你的“工作”示例可以转化为:
相关问题 更多 >
编程相关推荐