【问题标题】:Create class instance with string input (python)使用字符串输入创建类实例(python)
【发布时间】:2013-02-26 20:41:51
【问题描述】:

我想创建类实例并用用户输入字符串命名它们。像这样的东西,它确实有效。有什么想法吗?

class Account:
     balance=0

input("What's your name?") = Account()

如果用户输入 Scott,我希望能够使用 Scott.balance 等调用属性。

【问题讨论】:

    标签: python string input instantiation


    【解决方案1】:

    您最好将它们存储在字典中。使用用户输入在全局/本地空间中创建变量是个麻烦事。

    accounts = {}
    account[x] = Account()
    

    【讨论】:

    • 所以这会在数组中创建一个实例,这很好。但是我将如何合并用户名来命名数组,这将允许我使用语法即 Jack.balance 来调用它的属性?
    • account[name].balance += 100
    【解决方案2】:

    使用内置的raw_input 将用户输入作为“构造函数”的参数

    class Account:
         def __init__(self, name=0, money=0):
             self.name = name
             self.money = money
    
    input = raw_input("What's your name? -->")
    account = Account(input,10000)
    

    【讨论】:

      【解决方案3】:

      给你的班级一个__init__ 方法:

      class Account:
           def __init__(self, x=1, y=2):
               self.x = x
               self.y = y
      

      然后初始化它:

      def createAccount(x):
          return Account(x)
      

      【讨论】:

        【解决方案4】:

        我们可以从类外部输入字符串,只需像往常一样使用两种方式将其传递给 init:input() 或 raw_input()。

        class Account:
             def __init__(self, balance):
                self.balance = balance
             def output_all(self):
                print( '{}'.format(self.balance))
        
        MyAccount = Account(input('Type your account : '))
        
        Account.output_all(MyAccount)
        

        【讨论】:

        • 如果您能用添加的代码解释您的方法,那就太好了。
        • 我们可以像往常一样使用两种方法从类外部输入字符串:input() 或 raw_input()。我希望我解释清楚!
        猜你喜欢
        • 2011-06-02
        • 1970-01-01
        • 1970-01-01
        • 2020-07-30
        • 1970-01-01
        • 2017-05-18
        • 2015-07-22
        相关资源
        最近更新 更多