zoukankan      html  css  js  c++  java
  • 一道题带你搞定Python函数中形参和实参问题

    昨天在Python学习群里有位路人甲问了个Python函数中关于形参和实参一个很基础的问题,虽然很基础,但是对于很多小白来说不一定简单,反而会被搞得稀里糊涂。人生苦短,我用Python。

    为了解答大家的这个疑惑,小编在此举个栗子,希望大家能够彻底的理解实参和形参在Python中的用法。

    首先,大家一起看个栗子。

    不可更改的对象

    这个函数的输出值是多少?很多人会回答7,其实程序运行之后,其答案是6,点解呢?

    为什么在这里形参的数值并不改变实参的数值?

    这里需要给大家普及一个Python中的基础,在python中,string(字符串), tuples(元组), 和number(数值)是不可更改的对象,而list(列表),dict(字典)等则是可以修改的对象。

    也就是说,这里形参的数值对于外部的实参的数值(number类型,不可变)来说是没有任何关系的,他们虽然是同一个名字,但是其指向对象是不一样的。所以当在程序最后进行打印a输出值的时候,其输出仍然是6。

    下面这个栗子我们来看看可变的对象,以list(列表)作为实验对象。

    可更改的对象

    这个函数的输出值是多少?很多人会回答[1,2],其实程序运行之后,其答案是[2,1]。

    与第一个栗子刚刚相反,这里形参的数值调用把实参改变了。因为本例中参数传递的是列表,其是可更改的对象,在函数内部经过系列赋值变化之后,所以在程序运行之后其输出值产生了变化。

    山重水复疑无路,柳暗花明又一村。这道题经常会被招聘公司和企业拿去作为面试题,考察面试狗的Python基础知识,希望大家好好参详,日后碰到类似的问题加以注意,少走弯路!

    最后感谢在Python群中积极提问的好学者,然我们大家一起为学好Python而奋斗吧!
    想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/

  • 相关阅读:
    修改hosts文件
    什么时候集合不可以插入空值
    OL2中实现百度地图ABCD marker的效果
    OL3实现多图联动
    Arcgis for javascript实现百度地图ABCD marker的效果
    OL记载Arcgis Server切片
    postgis常用函数介绍(二)
    postgis常用函数介绍(一)
    共享个地图控件的样式
    OpenLayers3基础教程——OL3 介绍interaction
  • 原文地址:https://www.cnblogs.com/dcpeng/p/12891563.html
Copyright © 2011-2022 走看看