python - 继承方法 如何使超级方法可用?
问题描述
我有一个类(可以工作[或似乎])来运行 sql 查询。代码如下。如果我从对象继承并且不使用超级,它工作正常。
我正在学习从超类中插入方法,所以我想我会让我的类头看起来像这样
class database_connector(Connection)
并像这样在init中加入一个超级调用
super().__init__()
但是,我得到
TypeError: function() argument 1 must be code, not str
我试过了
super(database_connector, self).__init__()
在阅读了 StackOverFlow 中的其他内容后,但我现在仍然得到
TypeError: function() argument 1 must be code, not str
我期待这项工作将允许我从 pymysql.Connection 调用更多方法。
这是我的课
from pymysql import Connection
# set up default values for database connector
class database_connector(Connection):
def __init__(self, host=None, db=None, user=None, passwd=None):
super(database_connector, self).__init__()
if host is None:
self.host = "mysql_host_ip"
else:
self.host = host
if db is None:
self.db = "fred_db"
else:
self.db = db
if user is None:
self.user = "fred"
else:
self.user = user
if passwd is None:
self.passwd = "fredspasswd"
else:
self.passwd = passwd
self.this_database = (Connection(host=self.host,
user=self.user,
passwd=self.passwd,
db=self.db))
self.cur = self.this_database.cursor()
def my_sql_run_this_sql(self, sql_to_run=None):
if sql_to_run is None:
data = self.cur.execute("SELECT * FROM person")
else:
data = self.cur.execute(sql_to_run)
data = []
for row in self.cur.fetchall():
data.append(row)
self.this_database.close()
return data
解决方案
推荐阅读
- python - 使用 split() 遍历字符串中的单词
- java - iText - 如何获取用于打印的 PDF 二进制文件
- c++ - 使用 ProtocolBuffers 时,有没有办法为生成的 C++ 代码指定输出导入?
- http-status-code-404 - 良好的 reCAPTCHA 下载音频会给出 404
- reactjs - ReactJS 路由器 + 组件层次结构,当用路由更改换出组件时
- powerapps - PowerApps 将 DropDown 的 DataCardValue 设置为 TextBox 值
- wordpress - PHP 邮件程序不适用于 wordpress 5.5
- html - 按钮文本间距
- html - CSS :not 选择器被忽略
- javascript - 如何更改 Reactjs 中状态变量的值