Python技术问题:输出指定内容及解决‘Person’对象无‘Food’属性报错
问题解决:'Person' object has no attribute 'Food' 及输出问题
你的代码存在两个关键错误,导致了报错和无法正常输出:
- 没有在构造方法中将传入的参数绑定为实例属性
- 方法缩进错误,导致方法不属于类的成员
修正后的代码
class Person: def __init__(self, Food): # 将传入的Food参数赋值为实例属性,供类内方法调用 self.Food = Food # 调整缩进,让FindFood成为类的成员方法 def FindFood(self): # 用f-string优化字符串拼接,更简洁易读 print(f"my fav food is {self.Food}") p1 = Person("cake") p1.FindFood()
修改说明
- 绑定实例属性:在
__init__方法中添加self.Food = Food,把外部传入的参数保存为实例的属性,这样FindFood方法就能通过self.Food访问到对应的值。 - 修正方法缩进:将
FindFood方法的缩进调整到和__init__同级,使其成为Person类的成员方法,实例才能正常调用它。 - 字符串拼接优化:用f-string替代直接加号拼接,避免因类型不匹配导致的潜在问题,同时代码更直观。
内容的提问来源于stack exchange,提问作者Rina Kim
相关产品推荐
相关产品推荐

