首页 > 解决方案 > 如何让 __init__ 返回一个字符串?

问题描述

在这里,我试图返回一个字符串,但构造函数只能返回一个None值。有什么办法吗?

class company:
    def __init__(self):
        self.first_name = str(input("Enter your first name: "))
        self.last_name = str(input("Enter your last name: "))
        self.fullname = self.first_name + " " +self.last_name
        return self.fullname

class salary:
    pay = int(input("Please enter the pay: "))
    def incre(self):
        self.increment = self.pay + 1000
        return self.increment

class Multiderived(company, salary): # here I am using multiple inheritance
    def output(self):
        company.__init__(self)
        salary.incre(self)
        print ("Your full name is: ", self.fullname)
        print ("Your salary is: ", self.increment)

u = Multiderived()
u.output()

在这段代码中,我必须使用多重继承将两个超类的值访问到一个派生类中,但第一个超类的构造函数不能返回字符串。有没有办法解决它。

标签: pythonpython-3.x

解决方案


你不能。您试图通过以下方式打破 python 规则: 请参阅以下文档object.__init__()

因为__new__()__init__()一起构造对象(__new__()创建对象和__init__()自定义对象),所以;不能返回非 None 值。__init__()这样做会导致 aTypeError在运行时引发。

(强调我的


推荐阅读