首页 > 解决方案 > 用输入初始化对象

问题描述

当我创建一个对象时,我希望它有一个列表。我想打印一个句子,然后要求输入填写列表所必需的输入。但它首先要求输入,然后打印出句子。我该如何解决?

class Test:
    def __init__(self, num1, num2 ,num3):
        print("enter 3 numbers")
        self.num1 = num1
        self.num2 = num2
        self.num3 = num3

test_object = Test(input("num1: "), input("num2: "), input("num3: "))

# What I get:
#  >>> num1: 1
#  >>> num2: 2
#  >>> num3: 3
#  >>> enter 3 numbers

#What I want:
#  >>> enter 3 numbers
#  >>> num1: 1
#  >>> num2: 2
#  >>> num3: 3

标签: python-3.xclass

解决方案


我想您将输入输入到类中,以便在设置类方法之前在 print 之后调用输入。有了这个,你__init__ 不会有任何争论。

class Test:
    def __init__(self):
        print("enter 3 numbers")
        self.num1 = input("num 1: ")
        self.num2 = input("num 2: ")
        self.num3 = input("num 3: ")
test_object = Test()

#What you will get this any time you call Test()
#  >>> enter 3 numbers
#  >>> num1: 1
#  >>> num2: 2
#  >>> num3: 3

或者

在类声明之前调用 print 语句

class Test:
    def __init__(self, num1, num2 ,num3):
        self.num1 = num1
        self.num2 = num2
        self.num3 = num3
print("enter 3 numbers")
test_object = Test(input("num1: "), input("num2: "), input("num3: "))

#What you will get
#  >>> enter 3 numbers
#  >>> num1: 1
#  >>> num2: 2
#  >>> num3: 3

推荐阅读