首页 > 解决方案 > 从函数返回位置参数

问题描述

类( people )需要 3 个参数,称为“name、middle_name 和 surname”,我试图给出这些参数,如下所示:

    def argument():
        name = input("name : ")
        middle_name = input("middle name : ")
        last_name = input("last name : ")
        return name,middle_name,last_name
   person = people(argument())

但不知何故它不起作用,我收到的错误消息:

TypeError: __init__() missing 2 required positional arguments

标签: pythonpython-3.x

解决方案


假设人的定义如下:

class people:

    def __init__(self, name, middle_name, last_name):
        self.name = name
        self.middle_name = middle_name
        self.last_name = last_name

这应该有效:

def argument():
    name = input("name : ")
    middle_name = input("middle name : ")
    last_name = input("last name : ")
    return name, middle_name, last_name


person = people(*argument())

print(person.name)
print(person.middle_name)
print(person.last_name)

请注意*在调用参数之前argument()。这称为拆包


推荐阅读