Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从函数返回位置参数_Python_Python 3.x - Fatal编程技术网

Python 从函数返回位置参数

Python 从函数返回位置参数,python,python-3.x,Python,Python 3.x,类(people)需要3个参数,称为“name、middle_name和姓氏”,我试图给出如下参数: def argument(): name = input("name : ") middle_name = input("middle name : ") last_name = input("last name : ") return name,middle_name,last_name person = peopl

类(people)需要3个参数,称为“name、middle_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())
但不知何故,它不起作用,我得到的错误信息是:

TypeError: __init__() missing 2 required positional arguments

假设对人的定义如下:

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()
之前的
*
。这被称为

您可以使用星号/爆炸符号将其解包

person = people(*argument())


作为一个随机提示,在Python中,我们通常将类名大写,因此我建议使用类似于
Person
类的内容,而不是尝试基于多个(
people
vs
Person
)来区分类和实例。只需执行
Person
(类)vs
Person
(实例)。

参数
函数将返回元组。为了提供3个位置参数,需要将其解包
person=people(*argument())

你能发布你的人物类吗?谢谢,是的,它成功了。谢谢