Python基本语法之函数

版权声明:转载请注明出处及作者! https://blog.csdn.net/chenzhanhai/article/details/83663445

 

Python命名规范

名称

说明

模块名

小写字母,单词之间用_分割  如:module_name

包名

小写字母,单词之间用_分割 如:package_name

类名

单词首字母大写 如:python class LogRecord(object):

普通变量

小写字母,单词之间用_分割  如:exc_info

实例变量

以_开头,小写字母,单词之间用\_分割  如:_exc_info,不能访问的类属性,但可通过类提供的接口进行访问, 不会被语句 “from module import *” 语句加载

私有实例变量

以\_\_开头(2个下划线),小写字母,单词之间用\_分割  如:__private_var ,外部访问会报错

专有变量

开头,结尾,一般为python的自有变量,不要以这种方式命名  如:doc ,是系统定义的,具有特殊意义的标识符

普通函数

小写字母,单词之间用_分割: 如:get_name()

私有函数

以\_\_开头(2个下划线),小写字母,单词之间用分割 如:__get_name() ,外部访问会报错

 

 

 

 

 

 

 

 

 

 

 

 


函数规则

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。

任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。

函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以冒号起始,并且缩进。

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

 

 

 

 

 

 

函数语法

def 函数名(参数列表):

函数体

return

 

 

 

函数示例

def printinfo( name, age ):
   print ("名字: ", name)
   print ("年龄: ", age)
   return
 
printinfo( age=15, name="xiaoming" )

示例运行结果

 

可变参数和不可变参数

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

传不可变参数示例

def ChangeInt( a ):
    a = 10
 
b = 6
ChangeInt(b)
print( b )

示例输出结果为6

传可变参数示例

def changeme( mylist ):
   mylist.append([2,3,4])
   print ("函数内取值: ", mylist)
   return
 
mylist = [10,20,30]
changeme( mylist )
print ("函数外取值: ", mylist)

示例输出结果

 

关键字参数

Python 解释器能够用参数名匹配参数值,所以允许函数调用时参数的顺序与声明时不一致。

关键字参数示例

def printinfo( name, age ):
   print ("名字: ", name)
   print ("年龄: ", age)
   return
 
printinfo( age=15, name="xiaoming" )

示例运行结果

 

默认参数

在函数定义时设置参数的默认值,调用函数时,如果没有传递参数,则会使用默认参数。

默认参数示例

def printinfo( name, age = 18 ):
   print ("名字: ", name)
   print ("年龄: ", age)
   return
 
printinfo(name="xiaoming" )

示例运行结果

 

不定长参数

含不定长参数的函数语法

def functionname([formal_args,] *var_args_tuple ):

     function_suite

     return [expression]

不定长参数示例

def printinfo( arg1, *vartuple ):
   print (arg1)
   print (vartuple)
 
printinfo( 70, 60, 50 )

示例运行结果

第二种不定长参数语法,两个星号 ** 的参数会以字典的形式导入

def functionname([formal_args,] **var_args_dict ):
   function_suite
   return [expression]

第二种不定长参数示例

def printinfo( arg1, **vardict ):
   print (arg1)
   print (vardict)
 
printinfo(10, a=20,b=30)

示例运行结果

匿名函数

python 使用 lambda 来创建匿名函数,只包含一个语句

lambda [arg1 [,arg2,.....argn]]:expression

匿名函数示例

multi = lambda arg1, arg2: arg1 * arg2

print ("相乘后的值为 : ", multi( 10, 20 ))

示例运行结果

return语句

return返回结果示例

def sum( arg1, arg2 ):
   return arg1 + arg2
 
print (sum( 10, 20 ))

示例的打印结果是30

变量作用域

Python的作用域一共有4种,使用变量时,以 L –> E –> G –>B 的规则查找

作用域种类

说明

L (Local)

局部作用域

E (Enclosing)

闭包函数外的函数中

G (Global)

全局作用域

B (Built-in)

内建作用域

 

 

  

 

 

 

变量作用域代码示例

x = int(9.9)  # 内建作用域
 
g_count = 0  # 全局作用域
def outer():
    o_count = 1  # 闭包函数外的函数中
    def inner():
        i_count = 2  # 局部作用域

global和nonlocal关键字

global用于在局部范围内使用全局变量而声明,示例如下

num = 1
def my_fun():
    global num  # 需要使用 global 关键字声明
    print(num) 
    num = 1234
    print(num)
my_fun()
print(num)

示例输出结果

nonlocal关键字用于在内部嵌套中使用外层作用域(enclosing 作用域,外层非全局作用域)中的变量,示例如下

def outer():
    num = 1
    def inner():
        nonlocal num   # nonlocal关键字声明
        num = 123
        print(num)
    inner()
    print(num)
outer()

示例输出结果

如果您喜欢该文章,别忘了点赞和评论哦!

猜你喜欢

转载自blog.csdn.net/chenzhanhai/article/details/83663445