python - 使用 Python 构造函数时出错

标签 python constructor

class fileDetails :

    def __init__(self,host,usr,pwd,database):
        self.host=host
        self.usr.usr
        self.pwd=pwd
        self.database=database

    def __init__(self,connection,sql,path):
        self.connection=mysql_connection()
        self.sql=sql
        self.path=path

如果我使用构造函数然后它给出一个错误:

onnetction = fileDetails('localhost',"root","",'bulsorbit')
TypeError: __init__() takes exactly 4 arguments (5 given)

最佳答案

构造函数(或任何其他函数)的重载在 python 中是不允许的。所以你不能为你的类定义两个 __init__ 函数。

你可以看看this postthis one

主要思想是使用默认值创建“备用构造函数”检查参数的数量和类型,以便选择要使用的方法申请。

def __init__(self, **args):

那么 args 将是一个包含所有参数的字典。所以你将能够做出不同

connection = fileDetails(host='localhost',usr="root",pwd="",database='bulsorbit')

connection = fileDetails(connection="...",sql="...",path="...")

关于python - 使用 Python 构造函数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1170731/

相关文章:

python - 使用 Flask test_client() 自动 JSON 解码

Python 在导入时执行函数(显然)

c# - 实例化类的通用字段

c++ - 如何同时使用变量和 move 变量?

actionscript-3 - 将类作为构造函数的参数传递

python - 为什么类 __dict__ 是映射代理?

python - 如何在 Windows 上使用 python2.7 设置 FTS3/FTS4

python - sympy.Matrix哈希值差异

python - __init__ 中的 UnboundLocalError

c++ - 分配给构造函数? (像一个元组层)