zoukankan      html  css  js  c++  java
  • python中的函数

    语法:  def   方法名(参数1,参数2,参数3........):

    函数内容从冒号开始,并且缩进

    return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

    函数调用:直接           方法名(参数1,参数2.....)如果有参数,方法名()无参数

    # 定义函数
    def printme( str ):
       "打印任何传入的字符串"
       print str;
       return;
     
    # 调用函数
    printme("我要调用用户自定义函数!");
    printme("再次调用同一函数");

    可更改(mutable)与不可更改(immutable)对象

    在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

    • 不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。

    • 可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

    python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。

    def ChangeInt( a ):
        a = 10
    
    b = 2
    ChangeInt(b)
    print b # 结果是 2

    def changeme( mylist ):
       "修改传入的列表"
       mylist.append([1,2,3,4]);
       print "函数内取值: ", mylist
       return
     
    # 调用changeme函数
    mylist = [10,20,30];
    changeme( mylist );
    print "函数外取值: ", mylist

    实例中传入函数的和在末尾添加新内容的对象用的是同一个引用,故输出结果如下:

    函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
    函数外取值:  [10, 20, 30, [1, 2, 3, 4]]
     
    必备参数:必备参数需以正确的顺序传入函数,调用时的数量和声明时一样。
    def printme( str ):
       "打印任何传入的字符串"
       print str;
       return;
     
    #调用printme函数
    printme();     #报错,必须传入一个参数

    关键字参数:使用关键字参数允许函数调用时参数的顺序与声明时不一致

    def printme( str ):
       "打印任何传入的字符串"
       print str;
       return;
     
    #调用printme函数
    printme( str = "My string");

    或者

    def printinfo( name, age ):
       "打印任何传入的字符串"
       print "Name: ", name;
       print "Age ", age;
       return;
     
    #调用printinfo函数
    printinfo( age=50, name="miki" );

    缺省参数:调用函数时,如果缺省参数的值没有被传入,则被认为是默认值
    def printinfo( name, age = 35 ):
       "打印任何传入的字符串"
       print "Name: ", name;
       print "Age ", age;
       return;
     
    #调用printinfo函数
    printinfo( age=50, name="miki" );
    printinfo( name="miki" );
    不定长参数:一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数
    加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可。如下实例:
    def printinfo( arg1, *vartuple ):
       "打印任何传入的参数"
       print "输出: "
       print arg1
       for var in vartuple:
          print var
       return;
     
    # 调用printinfo 函数
    printinfo( 10 );
    printinfo( 70, 60, 50 );












     
  • 相关阅读:
    mac上eclipse上运行word count
    利用hadoop自带程序运行wordcount
    mac上eclipse上配置hadoop
    在mac上安装hadoop伪分布式
    0到N数其中三个数的全排列
    【设计模式】【应用】使用模板方法设计模式、策略模式 处理DAO中的增删改查
    【设计模式】【行为型模式】策略模式
    【设计模式】【行为型模式】模板模式
    properties文件操作
    File相关操作
  • 原文地址:https://www.cnblogs.com/linqiuhua/p/7709573.html
Copyright © 2011-2022 走看看