zoukankan      html  css  js  c++  java
  • 再探函数----参数

    1.函数是

     2,函数参数有四种。分别是

        1,普通参数(定长参数也叫位置参数)

       2,不定长参数

      3,关键字参数

     4,不定长关键字参数

     

    2-1,普通参数:普通参数也叫位置参数,每个位置相对应

    先来看一个例子:我们想要实现三个数相加

     如果我们要实现多次可能就需要:

     如果这个时候你能够想到循环,说明对于基础还是有所掌握的,但是如果我们后面可能还会用到,而不是这一个地方,我们可以考虑函数来实现

     我们需要用到几次,就调用函数几次就可以了,然而这其实并不是参数

    真正的参数是括号里面的,看下面的一个例子

     这个括号里的abc就是普通参数了

     但是如果这个时候要计算4个数或者更多的数了,运行就会报错了

     2-2,不定长参数:参数不知道有多少,任意个参数

    先看一下

     第一行,首先定义了一个calc_sum函数,后面的*args是语法格式

    语法格式就是*加上不定长参数,这个args是我们前辈平时默认的写法,你可以随便命名比如*s   *b  ,但是还是建议写上args

    第二行,打印出args的和,这个args你可以直接打印,你会发现是一个元组

    第三行,我们调用这个函数,此时这个函数里面我们就可以随便写多少个参数了

    其实我们最开始就接触到了不定长参数,我们最熟悉的print函数

    可以看到第一个参数objects带了*号,为不定长参数——这也是为什么print()函数可以传递任意数量的参数。其余四个为默认参数,我们可以通过修改默认值来改变参数

    2-3:关键字参数:

    关键字参数与位置参数很很像,只是在调用函数的时候我们把位置改变了

     

     结果其实是一样的

    2-4:不定长关键字参数:

    下面的代码看一看:

     第一行我们定义了一个connect的函数,**kwargs代表一个不定长关键字参数,语法格式是**两个星号加参数名字,名字也是你随便起的

    第二行,我们打印一个账号和后面一个叫user的参数

    第三行,我们打印一个密码和一个叫passwd的参数

    所有参数的命名都是自己起,尽量还是以前的一些规范

    第四行我们给这些参数赋值

    最后会得到:

    3,参数的变量作用域:分为局部变量和全局变量,函数里面的变量往往只在那个函数里面有用,称为局部变量

    程序中的变量并不是在哪个位置都可以被使用的,使用权限决定于这个变量是在哪里赋值的

     来简单的看一看这个代码:

    重点看第9行

    两个变量rent是全局变量,而variable_cost则是上一个函数的变量

    你一运行会发现报错

     我们得知道:

    一个在函数内部赋值的变量仅能在该函数内部使用(局部作用域),它们被称作【局部变量】,如cost()函数里的variable_cost。

    在所有函数之外赋值的变量,可以在程序的任何位置使用(全局作用域),它们被称作【全局变量】,如第一行的rent

    如果要解决这个问题,暂提供两种方法,

    1,把局部变量直接变成全局变量

    ,2,global语句,

    它可以将局部变量声明为全局变量,仔细看第四行代码。

     我们只需要在函数下面加一个

     其他所有的代码都不变,就可以实现了

    global语句一般写在函数体的第一行,它会告诉Python,“我希望variable_cost是个全局变量,所以请不要用这个名字创建一个局部变量”。所以sum_cost()函数内部现在可以直接使用声明后的全局变量variable_cost。

       

  • 相关阅读:
    MYSQL新特性secure_file_priv对读写文件的影响
    weblogic反序列化漏洞CVE-2018-2628-批量检测脚本
    WebLogic WLS-WebServices组件反序列化漏洞—Linux可执行反弹一句话版本
    攻击溯源_一次断网事件的分析
    建立加密socks5转发的两种方法
    【原创】Flash XSS 挖掘
    【转载】SQL的注入类型
    【原创】批处理文本
    【转载】nmap 官方指南
    【转载】对抗 DDoS 攻击的 15 个方法
  • 原文地址:https://www.cnblogs.com/jun-001/p/13284356.html
Copyright © 2011-2022 走看看