导航:首页 > 编程语言 > python传值是什么意思

python传值是什么意思

发布时间:2024-10-17 09:13:57

⑴ 在python函数里,不用return,怎么把值送出来

题主好. 如果不用 return, 我们可以选择利用传递参数的引用来‘把值送出来’, 但这样只能针对不变对象, 如字典, 列表, numpy 数组等等. 例如我们可以用如下代码修改 numpy 数组:

mat = numpy.zeros((3,3))

compute_matrix( mat )

我们可以定义函数 compute_matrix 来修改参数 mat 的值, 并在这个函数结束后返回, 可以不用 return.


附录:

python 参数传递 (传值或传引用). 这篇博文将 python 中参数传递的情况, 什么时候传值什么时候传引用, 解释地很清楚, 具体地:

⑵ Python如何向函数传递参数

s=[3,2,5,1]
sorted(s,reverse=True)
默认reverse=False,排序为正序。传入reverse=True,排序就是倒序

⑶ Python中不定长参数这样用对吗def hh(w,**l,pu='d'): 为什么

题主你好,

一般来说, python函数中有两种形式的参数: 位置参数, 关键字参数.

位置参数: 说白了就是在函数调用时必传的,你不给它赋值函数就运行不了.如:

按照之前讲的,调用person时,age必须要传值,name可传可不传,所以调用形式可以是:

person(18), 也可以是person(18,"李四") //同时把参数名加上进行调用也可以,即person(age=18,"李四"), person(age=18, name="李四"), person(18,name="李四")这都是合法的,当然如果看着乱,记住一种就好.

**.还有一点需要注意函数定义中,位置参数一定要位于关键字参数前,也就是说def person(name="张三",age)这么写是错误的(对于这条约定我是这么理解的, 你想啊假如位置参数位于关键字参数前是可行的,则我们在调用person时,即使name就是默认值"张三",我们也要传值, 因为如果你这么写,person(18),则18会传给person的第一个参数name,如果你写person("张三",18)又麻烦了,因为name的默认值就是"张三', 但我觉得使用person(age=18)还可以理解呀,不管怎么样吧,记住规矩就是这样的.).

-----

下面就该引出题主问题中所谓的"不定长参数"了. 我感觉叫"任意数量的参数"更好理解一些,因为重点在于数量,而不在于长度.//至少如果我没有看到你的实际题目,你说"不定长参数"我会理解为一个参数的值的长度不限, 而非可以有任意多个参数.

为了迎合题主, 下面就称"不定长参数"吧.

python中一般不定长参数有两种类型,位置不定长参数关键字不定长参数, 其外在特征是:

位置不定长参数由一个星号+变量名组成: *var //var是我随意写的,可以是*a,*b,*any等

关键字不定长参数由两个星号+变量名组成: **key //同理,key也可以是任意名称.

-----

不定长参数的出现其实就是为了增加函数的灵活性, 这个灵活性就体现在"可以表示任意多个参数位置参数和或关键字参数".

-----

最后再说回题主的问题:

def hh(w,**l,pu='d')

这个用法不对, pu='d'要放在**l前面,我说下原因:

先看一下hh这个函数中的参数类型有两种, w是位置参数; **l和pu='d'是关键字参数.

因此w放在最前面没毛病(位置参数要位于关键字参数前面), 而为什么pu='d'要放在**l前面呢,因为**l表示所有的关键字参数都要传给l,所以如果pu='d'写在**l后面,则pu='d'就不起作用了,因此不能这样写.

=====

希望可以帮到题主, 欢迎追问.

⑷ Python 不同脚本之间传值问题

看你的需求,应该是需要显示def2被执行。只需要print "def2"就可以了。

你可能理解有些误差,当py2被执行时,py1的模块是被导入到py2中,所以对于py2来说,它与py1没有什么关系。只是把py1的功能拿来用。拿来后就属于py2了。只在一个进程里执行,就象是py2自己的一样。这就是PYTHON的特点。

另外顺便说一下。如果你这样循环执行。几乎1秒钟,系统的栈就满了。很可能执行不下去了。

⑸ python 函数里面 字典复制问题

如果是我,我会在函数里面声明b是global的,而不是用似是而非的传值传指针,你这样写是想说b_hash传递的是指针,可惜python里一旦用“=”赋值就已经相当于声明了一个新的变量,所以你的这个问题两种解决办法:

第一个,把你要传指针的东西放到列表里:

deftest(aa,bb):
bb[0]=.deep(aa)
a={1:1}
b=[{}]
test(a,b)
printb[0]

这样保证你可以通过b这个名字找到改变后的指针。

第二个,在函数里声明你要修改的是全局变量:

deftest(aa):
globalb
b=.deep(aa)
a={1:1}
b={}
test(a)
printb

当然,你还可以用既不是global也不是local的局部作用域,那可以说叫闭包,但有些不好懂就不说了。。。

楼上的方法思想和第一种一样,但是没做深层拷贝,一层for循环没有递归实现了.,而不是.deep。。。

阅读全文

与python传值是什么意思相关的资料

热点内容
查看wrf的编译 浏览:942
瑞幸app如何预约自提 浏览:685
安卓怎么能关掉搜索 浏览:219
简单实用的桌面文件夹 浏览:399
解开压缩包打开文件夹 浏览:12
解压日本喜剧 浏览:870
如何看出服务器性能配置 浏览:647
程序员怎么变成少女 浏览:268
acr9000独立式可编程运动控制器 浏览:764
java数据结构书籍 浏览:359
lol压缩秀 浏览:528
编译烧录失败 浏览:272
安卓如何让充电快起来 浏览:16
手机qqdisk文件夹 浏览:937
文件夹怎么放进U盘 浏览:295
手机系统编译语言 浏览:422
华为手机nfc加密卡怎么复制 浏览:21
androidjni开发流程 浏览:884
如何解除vivo应用加密锁 浏览:734
菜单创建文件夹方法 浏览:378