zoukankan      html  css  js  c++  java
  • Python-函数

    def funcname(param1,param2,...):

        statements

    在函数中没有与全局变量同名的变量时,我们可以直接读取全局变量的值(不提倡这么做,容易混淆)

    要想在函数内对全局变量进行重新赋值,就得在函数内使用global语句

    e.g.

    number = 23

    def assignnum():

        number=13

    assignnum函数里的number只是一个局部变量,对它赋值不会改变全局变量number

    def assignnum():

        global number

        number=13

    global语句声明number是全局变量,此时修改的就是全局变量number的值了

    nonlocal语句

    python可以实现在一个函数中定义另一个函数,要在内层函数中使用外层函数的变量,就用nonlocal语句

    def func_outer():
        x=5
        def func_inner():
            nonlocal x
            x=2
        func_inner()
        print(x)
    func_outer

    输出2

    函数的缺省参数是从右向左的

    def func(a,b=5): #ok

    def func(a=5,b): #invalid

    keyword arguments

    #!/usr/bin/python
    
    def func(a,b=5,c=10):
        print 'a=',a,'b=',b,'c=',c
    
    func(3,7)
    func(25,c=24)
    func(c=50,a=100)

    output:

    a=3 b=7 c=10

    a=25 b=5 c=24

    a=100 b=5 c=50

    VarArgs parameters

    #!/usr/bin/python
    
    def total(initial=5,*numbers,**keywords):
        count = initial
        for number in numbers:
            count+=number
        for keyword in keywords:
            count+=keywords[keyword]
        return count
    
    print total(10,1,2,3,vagetables=50,fruits=100)

    output:

    166

    *number用来装多出来的位置参数 1,2,3. number是由这些参数组成的list

    **keywords用来装多出来的关键字参数 vagetables=50,fruits=100. keywords是由这些参数组成的字典

  • 相关阅读:
    前人风采
    【C++ Primer 第16章】1. 定义模板 (一)
    CCF CSP认证考试试题
    【C++ Primer 第11章】4. 无序容器
    【C++ Primer 第11章 练习答案】2. 关联容器操作
    【C++ Primer 第11章】2. 关联容器操作
    dxRatingControl使用
    dxRangeTrackBar使用教程
    UniConnectDialog使用
    Delphi窗体置顶及失去焦点后取得焦点
  • 原文地址:https://www.cnblogs.com/johnsblog/p/3960248.html
Copyright © 2011-2022 走看看