初学者:在函数中使用参数

你好- 我在功能中使用参数值遇到了麻烦,老实说 小麻烦 成员变量. 我试图通过代表的论点" d" 删除. 代码将要做什么,如果是" D",它将成为删除查询模板 细绳. 如果是"我",则插入查询等. 这是我尝试打印参数内容的结果 值. <__ main __.getQrystr实例,at 0x01151d50>('d',)我疯了 (在旁注,如果我不包括 *args,我会收到无效的数字 参数提供的消息.) 为什么它以这种格式返回值('d')? 我不能得到x == d 我猜该值" D"存储在元组中,我想把它从 那里. 因此,基本上该函数在站立时返回nope Python肯定与我使用过的其他语言不同. 谢谢你的帮助, 吉姆 类GetQrystr: def __init __(self,op): 打印OP self.x ='d' def returnstr(x,*args): 打印"%s%s me mad"%(x,args) 如果x =='d': s = template("从columndef删除tblid = $ tblid and delete colname = $ colname") 别的: 返回'nope'#其他仅供插图和测试 d = dict(tblid = t.tblid.getText(),colname = t.colname.getText()) 印刷S.Substitute(D) 返回s def delqry(self): createfldobj = getQrystr('d') s = createfldobj.returnstr('d')

# 回答1

在2006-05-31周三,第23:24 +0000,第三shiftcoder写道: 尝试,以下内容: 类GetQrystr: def __init __(self,op): 打印OP self.x ='d' def returnstr(self, *args): 打印"%s%s me mad"%(self.x,args) 如果self.x =='d': s = template("从columndef删除tblid = $ tblid and delete colname = $ colname") 别的: 返回'nope'#否则只是用于插图和 测试 d = dict(tblid = t.tblid.getText(),colname = t.colname.getText()) 印刷S.Substitute(D) 返回s 问候, 约翰 - - 此消息已被扫描以进行病毒和 MailScanner的危险内容,是 相信很干净.
# 回答2

在2006年1月1日上午9:24,第三shiftcoder写道: 这是您创建的对象. 第一个论点 方法是对象本身,通常命名为"自我". 它必须 在方法本身中被声明 def amethod(self,arg1,arg2): 但是当您调用它时会自动提供 anobj.amethod('foo',42) [狙击] 请考虑通过Python教程http://docs.python.org/tut/node11.html工作 和/或免费电子书之一,例如 http://www.byteofpython.info/ 在这篇文章的末尾是脚本的修改版本,显示 在正常的预期用法下发生了什么. hth, 约翰 8 <===演示脚本=== C:\ junk> type use_self.py 类GetQrystr: def __init __(self,op): 打印'__init__ ... op:%r'%op self.x = op def returnstr(self,arg): 打印'returnstr ... self.x:%r arg:%r'%(self.x,arg) 返回'=%s =%s ='%(self.x,arg) obj = getqrystr('blah') 打印'__ -main __ ... obj.x:%r'%obj.x s = obj.returnstr('yadda') 打印'__ -main __ ... S:%r'%s 8 <===演示脚本输出=== C:\ junk>我们 e_self.py __init__ ... op:'blah' __ -Main __ ... obj.x:'blah' returnstr ... self.x:'blah'arg:'yadda' __ -Main __ ... S:'= blah = yadda =' 8 <=== end ===
# 回答3

非常感谢约翰! 因此,我可以将自我作为函数参数以及方法中的方法. 这使我可以使用属性检索设置的值 构造函数. 我刚刚更改了函数返回语句,它起作用. 我沿着这些线工作,但无法将其启动并运行 您发布的快速. 模板确保是创建动态查询字符串的好方法. 到目前为止非常酷,但仍然可以学习很多. 再次感谢, 吉姆 " John McMonagle" 在消息中写道 新闻:MA **************************************************************************************************************** 尝试,以下内容:class getQrystr:def __init __(self,op):打印op self.x ='d'def returnstr(self, *args):打印'%s%s me mad'%'%(self.x,args,args )如果self.x =='d':s = template("从columndef中删除tblid = $ tblid and colname = $ colname")else:return'nope'#this else this erse this this hist in histration d = dict d = dict( tblid = t.tblid.getText(),colname = t.colname.getText())print s.substitute(d)返回s 关于约翰的问候 - MailScanner已将此消息扫描为病毒和危险内容,据信很干净.
# 回答4

" John Machin" 在消息中写道 新闻:44 ******@news.eftel.com ... 谢谢您的帮助. 非常感谢. 在接下来的几天里,我将进行更多阅读. 吉姆

标签: python

添加新评论