python-根据用户输入创建对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-根据用户输入创建对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1590字,纯文字阅读大概需要3分钟。
内容图文
![python-根据用户输入创建对象](/upload/InfoBanner/zyjiaocheng/691/409fb7f91e0244279a5dc221486f2028.jpg)
我有一些问题.下面的代码无法运行,因为我为__init__方法指定了三个参数,并且make_dog函数返回一个字典.
class Dog():
def __init__(self, name, colour, sex):
self._name = name
self._colour = colour
self._sex = sex
def __str__(self):
return '{}, {}, {}'.format(self._name, self._colour, self._sex)
def make_dog():
user_dog = {}
yes_or_no = input('Would you like to make a dog?! ')
if 'y' in yes_or_no:
print('Great! Let\'s get started')
user_dog['name'] = input('What shall we call the dog: ')
user_dog['colour'] = input('What colour is the dog: ')
user_dog['sex'] = input('What sex is the dog: ')
return user_dog
else:
print('Come back when you want to make a dog. Bye...')
exit()
d = Dog(make_dog())
print(d)
这是输出:
Would you like to make a dog?! y
Great! Let's get started
What shall we call the dog: doggie
What colour is the dog: white
What sex is the dog: male
Traceback (most recent call last):
File "test.py", line 25, in <module>
d = Dog(make_dog())
TypeError: __init__() missing 2 required positional arguments: 'colour' and 'sex'
>在我尝试实现时,根据用户输入创建狗的最佳/标准方法是什么?
>是否像在make_dog函数中那样使用字典来存储和从函数返回值的推荐方式?我认为是但是要检查.
非常感谢.
编辑:我不认为这是Passing a dictionary to a function in python as keyword parameters的重复,因为我认为我的问题更以初学者为中心和具体.希望其他初学者在想知道如何通过使用input()创建实例时会发现此问题.
解决方法:
是的,您可以执行此操作,但是必须使用**运算符将dict转换为参数列表.
d = Dog(**make_dog())
有关更多信息,请参见What does ** (double star) and * (star) do for Python parameters?.
另请参阅官方Python教程中的Unpacking Argument Lists.
内容总结
以上是互联网集市为您收集整理的python-根据用户输入创建对象全部内容,希望文章能够帮你解决python-根据用户输入创建对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。