从函数返回位置参数

2024-06-17 15:38:38 发布

您现在位置:Python中文网/ 问答频道 /正文

这个类(people)需要3个参数“name,middle\u name and lasname”,我试图给出如下这些参数:

    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

Tags: andnamemiddleinput参数returninitdef
3条回答

假设对人的定义如下:

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

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

您可以使用星号/爆炸符号来解压它们

person = people(*argument())

作为一个随机提示,在Python中,我们通常将类名大写,因此我建议使用类似Person的类,而不是尝试基于复数来区分类和实例(peopleperson)。只需做Person(类)和person(实例)。你知道吗

相关问题 更多 >