Python入门第14课——函数初步(只读课堂)

    科技2022-07-15  118

    In [1]: #欢迎来到“只读课堂”!

     

    In [2]: #今天我们来看一下上一节课留的问题( In[23] ):函数通过参数获取我们的值,函数中改变了参数的值,那么我们传递进去的值会改变吗?

     

    In [3]: #A:如果变量是不可变类型的,则不会改变;如果是可变类型的,它就会改变。

     

    In [4]: #演示一下便可知:

     

    In [5]: def test(varibal):

       ...: varibal = 100

       ...: return varibal

       ...:

     

    In [6]: var = 1

     

    In [7]: test(var)

    Out[7]: 100

     

    In [8]: print(var)

    1

     

    In [9]: def test(varibal):

       ...: varibal.append(100)

       ...: return varibal

       ...:

     

    In [10]: var = []

     

    In [11]: test(var)

    Out[11]: [100]

     

    In [12]: var

    Out[12]: [100]

     

    In [13]: #它还是不变的。

     

    In [14]: #但是我们不建议对可变类型在函数内进行更改,建议用函数返回值进行重新赋值。

     

    In [15]: #我们通常的做法是给外面的变量重新赋值:

     

    In [16]: def test(varibal):

        ...: temp = varibal.copy()

        ...: temp.append(100)

        ...: return temp

        ...:

     

    In [17]: var = []

     

    In [18]: var = test(var)

     

    In [19]: var

    Out[19]: [100]

     

    In [20]: #如果形成习惯的话,就可以知道,这样写更可以理解一些。

     

    In [21]: #——————————————————————————————————————————————————————————————————————

     

    In [22]: #参数的收集

     

    In [23]: def test(name, age, *args, **kwargs):

        ...: print(name, age, *args, **kwargs)

        ...:

     

    In [24]: test('wong', 12)

    wong 12

     

    In [25]: test('wong', 12, 23, 'lkl', [23,34])

    wong 12 23 lkl [23, 34]

     

    In [26]: dict_varibals = {

        ...: 'weight':120,

        ...: 'height':175

        ...: }

     

    In [27]: test('wong', 12, dict_varibals)

    wong 12 {'weight': 120, 'height': 175}

     

    In [28]: #单星号(*)主要是收集关键字的参数,双星号(**)主要是收集位置参数。

     

    In [29]: print("\n本次“只读课堂”的python教程就到这了,欢迎继续收看!\n")

     

    本次“只读课堂”的python教程就到这了,欢迎继续收看!

    Processed: 0.016, SQL: 8