2015-06-06 109 views
1

如何用输入值填充属性?我有这样的事情。如何用输入值填充属性?

class Names(object): 

    def __init__(self, name, nickname): 

     self.name = name 
     self.nickname = nickname 

而在另一个类...

def userlog(): 
    name = input("Your name: ") 
    nickname = input("Your nickname: ") 

我需要把值这个属性和它们保存到.txt文件。

+0

你的问题不清楚,你可以改一下呢? 什么是你的问题 - 它是从用户获得输入?传递变量作为参数? –

回答

0

试试这个:

def userlog(): 
    name = input("Your name: ") 
    nickname = input("Your nickname: ") 
    provided_inputs = Names(name, nickname) 

为了节省它放在一个文本文件,你可以尝试CSV格式一样的字符串。一种格式可能是“姓名,昵称”

使用下面的函数用于保存信息:一旦你有准备,修改userlog功能如下

def write_to_file(file_path, text_to_write, write_type='wt'): 
    with open(file_path, write_type) as f: 
     f.write(text_to_write) 
     f.close() 

def userlog(): 
    ......... 
    provided_inputs = Names(name, nickname) # This saves onto Names class 
    write_to_file('/tmp/you_path', 
        '{},{}'.format(name, nickname) # This saves the strings on a file 
0

你问题包含2部分:

  1. 如何创建类的实例Names
  2. 如何编写实例,以文本文件

要解决的第一部分,你必须在名字和昵称的用户类型后,就可以创建新的对象是这样的:

def userlog(): 
    name = input("Your name: ") 
    nickname = input("Your nickname: ") 
    user = Names(name, nickname) 
    return user 

对于第二部分,你需要打开用于写入的文件,它在任何你喜欢的格式写出来:

user = userlog() 
with open('output.txt', 'wt') as output_file: 
    output_file.write('Name: {}'.format(user.name)) 
    output_file.write('Nick: {}'.format(user.nickname))