python调用def函数问题

zhangyshun 2016-05-23 05:39:02
python纯新手,请教个一个很基础的问题

定义了SqlVO对象

class SqlVO:
sql = ''
list = []



设计了一个函数

def appendMapWhereSql(map, filterNull=True):
sqlVO = SqlVO()
sqlVO.sql = ' '
if map is None:
return sqlVO

for item in map:
sqlVO.sql += item + ','
sqlVO.list.append(map[item])

return sqlVO;


然后调用

sqlVO1 = appendMapWhereSql({'name':'123'})
sqlVO2 = appendMapWhereSql({'age':'456'})
print ('sqlVO1 : ')
print (sqlVO1.sql)
print (sqlVO1.list)
print ('sqlVO2 : ')
print (sqlVO2.sql)
print (sqlVO2.list)


这是运行结果

sqlVO1 :
name,
['123', '456']
sqlVO2 :
age,
['123', '456']


sqlVO1 的list值和sqlVO2的list值 为什么是一样的
如果我想达到这样的目标: sqlVO1 的list值是['123'] sqlVO2 的list值是['456']
appendMapWhereSql函数应该怎么写

谢谢了
...全文
611 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
关山路遥 2016-05-24
  • 打赏
  • 举报
回复
引用 1 楼 ligengyong2010 的回复:
class SqlVO: sql = '' list = [] sql和list是类变量,如果是对象变量的话需要加self 类需要重新定义,可以参考 class SqlVO: def __init__(self, sql, list): self.sql = '' self.list = [] sqlvo1 = SqlVO(参数)
加油,这错误刚入门的犯了没啥事,一步一步来
zhangyshun 2016-05-23
  • 打赏
  • 举报
回复
呵呵 谢谢了 理解的还不够深 看书的时候明白类静态变量和实例变量 真正用的时候就忘了
关山路遥 2016-05-23
  • 打赏
  • 举报
回复
class SqlVO: sql = '' list = [] sql和list是类变量,如果是对象变量的话需要加self 类需要重新定义,可以参考 class SqlVO: def __init__(self, sql, list): self.sql = '' self.list = [] sqlvo1 = SqlVO(参数)

37,737

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧