- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
python中设置窗体⼤⼩不可改变的函数是_Python教程:对函
数中的易错点总结
原标题:Python教程:对函数中的易错点总结
可更改(mutable)与不可更改(immutable)对象
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,⽽ list,dict 等则是可以修改的对象。
不可变类型:变量赋值a=5 后再赋值a=10,这⾥实际是新⽣成⼀个 int 值对象 10,再让 a 指向它,⽽ 5 被丢弃,不是改变a的值,相当
于新⽣成了a。
可变类型:变量赋值la=[1,2,3,4] 后再赋值 la[2]=5。则是将list la的第三个元素值更改,la本⾝没有动,只是其内部的⼀部分值被修改
了。
对于上述两种类型,函数的参数传递也是不同的:
不可变类型:类似c++ 的值传递,如整数、字符串、元组。如fun(a),传递的只是a的值,或者说是a的复制品,没有影响a对象本⾝。⽐如
在fun(a)内部修改 a 的值,只是修改另⼀个复制的对象,不会影响 a 本⾝。
可变类型:类似c++的引⽤传递,如列表,字典。如fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
python中⼀切都是对象,严格意义我们不能说值传递还是引⽤传递,我们应该说传不可变对象和传可变对象。
默认参数必须放在参数列表的最后⾯
不定长参数
传递不定长参数有两种⽅法 :
*以元组的⽅式传⼊;
**以字典的⽅式传⼊。
以元组的⽅式传⼊
结果 :
使⽤中,*vartuple这个参数可以不使⽤,也就是只传arg1这⼀个参数是可以的。
以字典的⽅式传⼊
结果 :
*单独出现
声明函数时,参数中星号*可以单独出现,例如:
如果单独出现星号,*后的参数必须⽤关键字传⼊。
匿名函数lambda
⽐如:sum = lambda arg1, arg2: arg1 + arg2,也就是参数: 表达式的形式。
使⽤⽅法 :sum(1,2)或者是sum(arg1=1, arg2=2)
和函数同理,可以设置默认参数sum = lambda arg1=0, arg2=0: arg1+arg2,同样的,默认参数的位置需要靠后。
强制位置函数
这是python3.8的特性。函数形参语法 / ⽤来指明:函数形参必须使⽤指定位置参数,不能使⽤关键字参数的形式。
/之前的参数必须使⽤指定位置参数。形参 a 和 b 必须使⽤指定位置参数;
c 或 d 可以是位置形参或关键字形参;
*之后的参数必须使⽤关键字参数。所以 e 或 f 要求为关键字形参。
f(10, 20, 30, d=40, e=50, f=60)这种使⽤⽅法是正确的。
函数内可以访问全局变量,但不能改变其值
如果需要改变全局变量的值,可以使⽤global⽅法:
可见,a的值变成了11。
函数作为参数
这个⼀个很有意思的封装。
责任编辑:
原创力文档


文档评论(0)