gpt4 book ai didi

python - Python 中的参数计数语法错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:09:29 25 4
gpt4 key购买 nike

我在尝试创建联合表生成器时遇到语法错误。

这是被冒犯的解释器:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "federatedTableBuilder.py", line 7, in <module>
local_public_files.generate()
File "localViewDefinition.py", line 22, in generate
self.generate_for_host(conn)
File "localViewDefinition.py", line 17, in generate_for_host
self.conn.doQuery(rsaconn,self.query)
TypeError: doQuery() takes exactly 2 arguments (3 given)

和有问题的代码:

import mysql as sql
from connector import Connector
import io
import traceback

class LocalViewDefinition:

...insert variables...

def doQuery(connection, query):
try:
cursor = MySQLdb.cursors.Cursor(connection)
cursor.execute(query)
except: #figure out how to handle generic and sql errors separately
traceback.print_exc()

你知道原因吗?

最佳答案

对于类方法,Python 采用额外的第一个参数来引用类的实例。约定是使用单词 self:

def doQuery(self, connection, query):
try:
cursor = MySQLdb.cursors.Cursor(connection)
cursor.execute(query)
except: #figure out how to handle generic and sql errors separately
traceback.print_exc()

这种引用类实例的要求是因为 Python 中“显式优于隐式”(参见 import this)。

关于python - Python 中的参数计数语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com