如何解决使用用户输入创建对象的最Pythonic方式
我想知道创建对象来自用户输入的对象的最Python方式是什么。考虑示例:
->
我是否应该在其他地方(在另一个模块中?)具有要求用户输入a,b,c值的函数?或者,是否应该将x,y,z设置为None,然后从 init 函数调用帮助函数,提示用户设置参数值?完成此操作的最Pythonic方法是什么?我已经使用Python几年了,但是(最终)开始优先考虑样式和代码美感。
谢谢您的帮助。
解决方法
您可以使用此语句将其包装起来
* What went wrong:
A problem occurred evaluating project ':bugsnag_react-native'.
> java.lang.ExceptionInInitializerError (no error message)
,
您不仅在询问pythonic编码方式,还在询问编码的一般原理。通常,除非您使用python编写脚本(而您只有一个源(.py)文件),否则程序中永远不会只有一个类。您的程序中也有用户输入。您应该始终将数据和用户界面分开。因此,针对数据使用单独的类,针对UI使用单独的类。在使用输入创建数据对象之前,UI类还可以验证输入。
,也许最Python化的方式是使用collections.namedtuple
import collections
a = input("Enter a: ")
b = input("Enter b: ")
c = input("Enter c: ")
obj = collections.namedtuple('Class',[a,b,c])
# Set value to each parameter
obj.a = 10
obj.b = 'Ghanteyyy'
obj.c = True
,
在某些情况下,我们需要在python程序中获取用户输入,然后在类初始化期间使用它。例如,如果我们有一个“人”类,它有两个属性,名字和姓氏。
class Person:
"""
A representation of a person
Attributes:
Firstname(string)
Lastname(String)
"""
def __init__(self,first_name,last_name):
self.firstname = first_name
self.lastname = last_name
def show_full_name(self):
return self.firstname + ' ' + self.lastname
要使用此类创建人员对象,我们可以直接提供参数而无需用户输入。见下文。
#instance by supplying arguments
person1 = Person('John','Doe')
person1.show_full_name()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。