如何解决将字典传递给__init__函数并稍后尝试访问它会产生错误,为什么?
class User:
"""a simple attempt to model a User"""
def __init__(self,first,last,**user_info):
self.user_info["first name"] = first
self.user_info["last name"] = last
def describe_user(self):
for k,v in self.user_info.items():
print(f"user's {k} is: {v}")
def greet_user(self):
print(f'\nHello {self.user_info["first name"].title()}')
user_1 = User("ahmed","ibrahim",age=22,gender="Male",hight="tall enough",location="unkNown")
user_1.describe_user()
错误:
AttributeError: 'User' object has no attribute 'user_info'
解决方法
您必须先将该字典复制到self
def __init__(self,first,last,**user_info):
self.user_info = user_info
self.user_info["first name"] = first
self.user_info["last name"] = last
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。