这是一个创建于 3206 天前的主题,其中的信息可能已经有所发展或是发生改变。
class TableAdmininfo(object):
def __init__(self):
self.__tables=sqlaction()
def GetNamePasswd(self,name):
sql="SELECT passwd from admininfo WHERE username=%s"
params=(name,)
return self.__tables.select_fet(self,sql,*params)
class sqlaction(object):def select_fet(self,sql,*params):
try:
conn=MySQLdb.connect(**db_dict)
cur=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
#sql="SELECT passwd from admininfo WHERE username=%s"
#params=("jerry",)
cur.execute(sql,params)
rows=cur.fetchall()
print rows
return rows
except Exception,e:
print e
sys.exit(1)
finally:
if conn:
cur.close()
conn.close()
通过第一个类调用第二个类就会爆那个错误,但是直接使用注释的代码执行就没有问题,完全搞不懂怎么回事??并且第二个类在被别的类调用时候完全没有问题啊
3 条回复 • 2016-01-13 12:40:40 +08:00
|
|
1
fy 2016-01-13 11:34:21 +08:00
楼主先不要慌,切 markdown 排下版
```python pass ```
虽然代码没有看得很明白,猜测是类型转换问题?楼主你直接把上面那个类对象传进去了?
- - 建议楼主看一下 PEP8 ,然后用个 ORM 操作数据库,推荐 Peewee 或者 SQLAlchemy
|
|
|
2
mulog 2016-01-13 12:36:47 +08:00
self.__tables.select_fet(self,sql,*params) 第一个 self 参数是多余的,你这样写相当于把这个 self (an instance of TableAdmininfo )当作 'sql' 参数传给了 select_fet
|
|
|
3
scott123 2016-01-13 12:40:40 +08:00
谢谢二楼,一只没有关注到这里,问题解决,谢谢一楼,学习一下你提到的。
|