在类中使用原始输入(python 2.7)
我想知道如何在类中使用原始输入,所以不要传递名称'Ryan',我们可以在对象内部传递一个变量,然后再请求该变量。
如:
name = raw_input("What is your name? ")
这里是我有的代码:
class Talk:
def __init__(self, name):
self.name = name
print "Hey there, " + self.name
def printName(self):
print self.name
talk = Talk('Ryan')
通常,这可以通过类方法完成,将用户输入(和任何相关的验证)与新实例的__init__
分开:
class Talk(object):
def __init__(self, name):
self.name = name
print "Hey there, {}".format(self.name)
def print_name(self):
print self.name
@classmethod
def from_input(cls):
"""Create a new Talk instance from user input."""
while True:
name = raw_input("Enter your name: ")
if name:
return cls(name)
这将用于:
>>> talk = Talk.from_input()
Enter your name: Ryan
Hey there, Ryan
>>> talk.print_name()
Ryan
请注意,根据样式指南,我已将printName
重命名为print_name
。 此外,这将是传统的不 print
从内__init__
,并提供__str__
和__repr__
方法,而不是一个print_name
(更多信息请参见Python的数据模型文档)。
你可以在类方法中调用函数。 这些方法包括__init__
。 例如:
class Talk:
def __init__(self):
self.name = raw_input("What is your name: ")
print "Hey there, " + self.name
def printName(self):
print self.name
talk = Talk()
链接地址: http://www.djcxy.com/p/54285.html