这篇文章主要讲解了“编写Python代码的方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“编写Python代码的方式是什么”吧!
Python以句法简单、简洁而闻名,只需掌握简单的英语就能理解其代码。对初学者来说极具吸引力,它没有声明,没有花哨的字符或者奇怪的句法。正因如此,Python才得以风靡全球。
除此之外,Python还具备一些很酷的特点,比如装饰器和列表解析。这些特点确实能创造奇迹,但*也值得这一美名,小小字符能带来翻天覆地的变化。
先从一个小技巧开始:
In [1]: first_dict= {'key1': 'hello', 'key2': 'world'} second_dict= {'key3': 'whats', 'key4': 'up'} In [2]: #joins the dicts combined_dict= {**first_dict, **second_dict} combined_dict Out[2]: {'key1': 'hello', 'key2': 'world', 'key3':'whats', 'key4': 'up'} In [ ]:
这是合并字典的超简单方法!你能明显看出,我仅用了几个星号就将字典结合了起来,我接下来会一一解释。
星号在哪些地方发挥作用?
除了众所周知的乘法作用,星号还能让你轻松完成一些重要任务,例如解包。一般来说,你可以使用星号来解包可迭代对象,也能对双向可迭代对象(就像字典一样)进行双重解包。
In [7]: # unpackingan iterable [xfor x inrange(100)] == [*range(100)] Out[7]: True In [8]: #unpkacing dict keys d = {'key1': 'A'} list(d.keys()) == [*d] Out[8]: True In [9]: #unpacking whole dict d == {**d} Out[9]: True
解包的力量
不要破坏别人的代码
大家也越来越理解这一点,但仍然有人没有遵守。开发者写出的每一个函数都有其特征。如果函数被改变,那么所有基于你的代码而撰写的代码都会被破坏。
我将介绍一种简单的方法,你可以为自己的函数增添更多功能性,同时也不会破坏其向后兼容性,最后你会得到更多的模块化代码。
在你的代码中输入*args和**kwrags,它们会将所有输入都解包进函数。单星号针对标准的可迭代对象,双星号针对字典类的双向可迭代对象,举例说明:
In [1]: defversion1(a, b): print(a) print(b) In [2]: version1(4,5) 4 5 In [3]: #code breaks version1(4,5,6) --------------------------------------------------------------------------- TypeError Traceback(most recent call last) <ipython-input-3-b632c039a799> in<module> 1# code breaks ----> 2 version1(4,5,6) TypeError: version1() takes 2 positionalarguments but 3 were given In [4]: defversion2(a, b, *args): print(a) print(b) # new function. if args: for c in args: print(c) In [5]: version2(1,2,3,4,5) 1 2 3 4 5 In [6]: #code breaks version2(1,2,3,4,5, Extra=10) --------------------------------------------------------------------------- TypeError Traceback(most recent call last) <ipython-input-6-748b0aef9e5d>in <module> 1 # code breaks ----> 2 version2(1,2,3,4,5, Extra=10) TypeError: version2() got an unexpectedkeyword argument 'Extra' In [7]: defversion3(a, b , *args, **kwrags): print(a) print(b) # new function. if args: for c in args: print(c) if kwrags: for key, value inzip(kwrags.keys(), kwrags.values()): print(key,':', value) In [8]: version3(1,2,3,4,5, Extra=10) 1 2 3 4 5 Extra : 10 In [ ]:
感谢各位的阅读,以上就是“编写Python代码的方式是什么”的内容了,经过本文的学习后,相信大家对编写Python代码的方式是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。