【问题】

Python中,希望实现一个可变参数的函数。

【解决过程】

相关代码如下:(extractOK, extractedBlogUser, generatedBlogEntryUrl) = callCommonBlogFunc(extractBlogUser, inputUrl=inputUrl);

#------------------------------------------------------------------------------

def callCommonBlogFunc(funcToCall, **paraDict):

blogProvider = "BlogNetease";

paras = "";

for i, para in enumerate(paraDict):

if ( i == 0) :

paras += para + "=" + paraDict[para];

#print dir(para);

#paras += para.__str__;

else :

paras += " ," + para + "=" + paraDict[para];

#paras += " ," + para.__name__;

print dir(funcToCall);

print "funcToCall.func_name=",funcToCall.func_name;

#print funcToCall.__dict__;

funcCallStr = blogProvider + "." + funcToCall.func_name + "(" + paras + ")";

print "funcCallStr=",funcCallStr;

return;

【总结】

1. 可变参数是一个星号*的,那么传入的是List类型变量;

注意:调用者,必须用直接给参数,即"hello", 123等形式的调用。

2. 可变参数是两个星号**的,那么传入的是Dictionary类型变量;

注意:调用者,必须用b="hello", c=123的形式调用。

看下面代码,就很容易懂了:def funcParaList(a, *paraList) :

print "paraList=",paraList; # paraList= ('hello', 123)

def funcParaDict(a, **paraDict) :

print "paraDict=",paraDict; # paraDict= {'c': 123, 'b': 'hello'}

def testFuncPara():

funcParaList('abc', "hello", 123);

funcParaDict('abc', b="hello", c=123);

python函数如何实现可变参数_【已解决】Python中实现可变参数的函数相关推荐

  1. c语言全局变量作为参数_在C / C ++中使用变量参数列表

    c语言全局变量作为参数 C/C++ provides a means to pass a variable number of arguments to a function.  This artic ...

  2. python画图显示不了中文_完美解决Python matplotlib绘图时汉字显示不正常的问题

    Matplotlib是一个很好的作图软件,但是python下默认不支持中文,所以需要做一些修改,方法如下: 1.在python安装目录的Lib目录下创建ch.py文件. 文件中代码为: 保存,以后通过 ...

  3. 从python存入的文件是乱码_如何解决python写入html文件中乱码的现象(图文详解)...

    python写入html文件中文乱码问题 使用open函数将爬虫爬取的html写入文件,有时候在控制台不会乱码,但是写入文件的html中的中文是乱码的 案例分析 看下面一段代码:# 爬虫未使用cook ...

  4. jdk 1.8 不可变常量_在JDK 10中不可变与不可修改

    jdk 1.8 不可变常量 大约两个月前, 斯图尔特·马克斯 ( Stuart Marks)写道:" 不变性就像葡萄酒 ." 然后,他提醒读者注意叔本华的熵定律 :"如果 ...

  5. java in out 参数_总是避免Java中的in-out参数?

    毫无疑问,输入输出参数会导致代码混乱,因为它们可能会增加意外/不可预测的副作用. 所以,许多优秀的程序员说: 避免使用in-out参数来更改可变方法参数.希望保持参数不变. 对于一个完美主义程序员来说 ...

  6. 已解决Python调用免费申请的百度图形识别接口案例

    已解决Python调用免费申请的百度图形识别接口{'error_code': 18, 'error_msg': 'Open api qps request limit reached'} 文章目录 报 ...

  7. 已解决Python向数据库插入数据的字符串中含有单引号或双引号报错

    已解决Python向数据库插入数据的字符串中含有单引号或双引号报错:(102, b"Incorrect syntax near 'S'.DB-Lib error message 20018, ...

  8. 已解决python selenium模块自动化操作谷歌浏览器点击元素失效问题解决(亲测有效)

    已解决python selenium模块自动化操作浏览器点击元素,抛出异常selenium.common.exceptions.ElementClickInterceptedException: Me ...

  9. 从前台页面取参数到sql的like中比较时参数的预处理

    //从前台页面取参数到sql的like中比较时参数的预处理 this.keytxt.Text.Trim().Replace("'", "''").Replace ...

  10. 当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的.

    当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递 答:是值传递.Java 编程语言只有值传递参数.当一个对象实例作为一个参数被传 ...

最新文章

  1. #每天一种设计模式# 观察者模式
  2. HALCON基于形变的模板匹配实现
  3. php正则的练习(持续跟新)
  4. 15.3 Task Task.Yield和Task.Delay说明
  5. android面试题总结加强版
  6. Kinect for Windows SDK发布
  7. 深度解读服务治理 ServiceMesh、xDS
  8. 滴滴与比亚迪合作的无人车亮相:搭载6颗摄像头
  9. 用于Ubuntu 16.04和18.04的TensorFlow,Keras,Caffe,Caffe,CUDA,cuDNN和NVIDIA驱动程序的单行安装
  10. 开源3问:95%的技术人都不知道的开源真相
  11. 【Computer Organization笔记23】非易失性存储:磁表面存储设备,磁盘的访问过程,RAID技术
  12. 【元胞自动机】基于matlab元胞自动机森林大火【含Matlab源码 235期】
  13. C语言实现蔡勒公式求周几
  14. 磊科nw336 linux驱动程序,磊科NW336无线网卡驱动程序
  15. 屏幕录像专家 EXE视频转MP4
  16. 鸡兔同笼html语言,鸡兔同笼有哪五种方法
  17. mysql乐观锁 超卖_秒杀系统之超卖现象
  18. 百度AI 开放平台 - 各大AI 开放平台开放能力解读和分析,技术的应用场景,技术前景
  19. 程序员菜谱3中粥做法
  20. 解读PMP考点:PMP考试中关于合同计算类型的题目

热门文章

  1. WinForm始终置顶并获取焦点
  2. 我想知道怎么求N的N次方
  3. vlc 缓冲大小 设置_用libvlc 播放指定缓冲区中的视频流
  4. java spring boot 注解验证_如何理解Java原生注解和Spring 各种注解?
  5. python预测发展趋势_Python中的趋势“预测器”?
  6. C++ 多继承中的多义性
  7. 红黑树为什么可以确保没有一条路径会比其他路径长出两倍
  8. LaTeX的表格标题位置
  9. OpenCV学习笔记(七):形态学morpholgy(1):腐蚀/膨胀:enrode(),dilate()
  10. Android之ViewDragHelper