zoukankan      html  css  js  c++  java
  • 函数的进阶

    一.  函数的动态传参

    1 chi(*food):
    2     print(food)
    3 chi('盖浇饭','拉州拉面','牛肉丸子面','清汤小面')
    4 chi('红烧牛肉面','镇江锅盖面','山西刀削面')
    5 chi('陕西裤带面','新疆拉条子')
    6 chi('广东竹升面')
    7 chi()

    结果为:
    (盖浇饭', '拉州拉面', '牛肉丸子面', '清汤小面')
    ('红烧牛肉面', '镇江锅盖面', '山西刀削面')
    ('陕西裤带面', '新疆拉条子')
    ('广东竹升面',)
    ()
    1 def chi(**food):
    2     print(food)
    3 chi(主食='馒头',副食='臭豆腐',汤='紫菜蛋花汤',水果="桃子",food='牛肉')

    结果:
    {'主食': '馒头', '副食': '臭豆腐', '汤': '紫菜蛋花汤', '水果': '桃子', 'food': '牛肉'}

    def fun(*args,**kwargs)

          print(args,kwargs)

    fun(*args,**kwargs)

    此函数的传参全部概括

    另一种动态传参的方式:

    1 def chi(*food):
    2     print(food)
    3 lst=['煎饼果子','肉夹馍','烤冷面','手抓饼','鸡蛋灌饼']
    4 chi(*lst)
    5 
    6 def chi(**food):
    7     print(food)
    8 dic={'good_food':'大米饭','no_good_food':'猪肉炖粉条','soup':'排骨汤'}
    9 chi(**dic)

    函数的注释:

    1 def fun(a,b):
    2     """
    3     这里是函数的注释,先写当前这个函数是干什么的 
    4     :param a:参数a是什么意思
    5     :param b:参数b是什么意思
    6     :return:返回的是什么东西
    7     """
    8 fun(a,b)

    二, 命名空间

    全局名称空间

    局部名称空间

    内部名称空间

    作用域:

    1全局作用域:内置+全局

    2.局部作用域:局部(函数被调用)

    globals()查看全家用中的内容

    locals()查看当前作用域中的内容

     a = 110 # 全局
     def fn(): #
         b = 20 # 局部
         def gn(): # 局部
             print(globals())  # 可以查看全局作用域中的内容
             print(locals())  # 查看当前作用域中的内容
         gn()
     fn()

     三. 函数嵌套

    函数可以互相嵌套

     1  def outer():
     2      print("哈哈")
     3      def inner_1():
     4          print("呵呵")
     5          def inner_1_1():
     6              print("嘻嘻")
     7          inner_1_1()
     8          print("吼吼")
     9      def inner_2():
    10          print("嘿嘿")
    11      inner_2()
    12      inner_1()
    13  outer()

    四. global和nonlocal关键字

    global:在局部访问全局的内容

    1  a = 10 # 全局变量本身就是不安全的, 不能随意修改, 闭包
    2  def func():
    3      global a  # 1. 可以把全局中的内容引入到函数内部 , 2. 在全局创建一个变量
    4      # a = 20
    5      a += 10 # a = a+10
    6      print(a)

    nonlocal:在局部寻找外层函数中离他最近的那个变量

     1  func()
     2  print(a)
     3  a = 10
     4  def outer():
     5 
     6      def inner(): # 在inner中改变a的值
     7          nonlocal a # 寻找外层函数中离他最近的那个变量
     8          a = 20
     9      inner()
    10 
    11  outer()
  • 相关阅读:
    Java 集合系列06之 Vector详细介绍(源码解析)和使用示例
    Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
    Java 集合系列02之 Collection架构
    Java 集合系列01之 总体框架
    [转载] 散列表(Hash Table) 从理论到实用(下)
    [转载] 散列表(Hash Table)从理论到实用(中)
    [转载] 散列表(Hash Table)从理论到实用(上)
    Android 之窗口小部件高级篇--App Widget 之 RemoteViews
    Android控件之GridView
    红黑树(一)之 原理和算法详细介绍
  • 原文地址:https://www.cnblogs.com/982336352ryan/p/9449699.html
Copyright © 2011-2022 走看看