Day 10 函数的进阶

1. 函数的动态参数
    1. *args 位置参数动态传参
  2. **kwargs 关键字参数动态传参
  顺序:位置参数, *args, 默认值, **kwargs

# by luffycity.com
# def chi(good_food, no_good_food, drink, xx, xxx,ice_cream):
#     print(good_food, no_good_food, no_good_food, drink, ice_cream)
#
# chi("盖浇饭","馒头","腊肠", "橙汁","哈根达斯")
#  顺序: 位置参数=>*args(arguments) => 默认值参数
# * 在这里表示接收位置参数的动态传参, 接收到的是元组
# def chi(name,*food, location="北京"): # 参数名是food  *表示动态传参
#     print(location)
#     print(name+"要吃", food)
#
# chi("刘旺鑫","狗不理","大麻花","天津")
# # chi("刘旺鑫","大米饭","小米饭")
# # chi("刘旺鑫","馒头")

def func(*args, **kwargs):
  pass

  形参的位置*,**: 聚合
  实参的位置*,**: 打散

顺序
  位置参数, *args, 默认值参数, **kwargs
  随以上参数可以意搭配使用

 1. 实参:
   位置参数
   关键字参数
   混合参数(位置, 关键字)
 2. 形参:
   位置参数
   默认值参数
 动态传参:
  *args: 位置参数动态传参
  **kwargs: 关键字参数动态传参
顺序: 位置, *args, 默认值, **kwargs
  def fun(a, *args, c="哈哈", **kwargs):
    print(a, args, c, kwargs)

  fun(1, 2, 3, 4,5, 6)

# 单行注释
  '''多行注释'''
  函数注释
def func(a, b):
  """
x这个函数是用来计算a和b的和
  :param a: 第一个数据
  :param b: 第二个数据
  :return: 返回的是两个数的和
  """
  return a + b

   print(func.__doc__) # document文档x

 

# 接收所有参数
# def func(*args, **kwargs):# 无敌 *args相当于一个聚合的作用
print(args, kwargs)
#
# func(1,2,3,4,5,a=6,b=7,c=9)

 

# 形参: 聚合
# def func(*food): # 聚合, 位置参数
# print(food)
# lst = ["鸡蛋","煎饼果子","猪蹄","滋滋冒油"]
# # 实参: 打散
# func(*lst) # 打散. 把list, tuple, set, str 进行迭代打散

 

# 聚合成关键字参数
# def func(**kwargs):
# print(kwargs)
#
# dic = {"name":'alex', 'age':'18'}
# func(**dic) # 打散成关键字参数

# a = 10 # 全局名称空间中的内容
#
# def fn(): # fn也在全局名称空间
#     b = 20 # 局部名称空间
#     print(a)
# def gn():
#     print(a)
# fn()
# gn()
# 1. 内置, 2. 全局 , 3. 局部(函数调用)
# a = 110 # 全局
# def fn(): #
#     b = 20 # 局部
#     def gn(): # 局部
#         print(globals())  # 可以查看全局作用域中的内容
#         print(locals())  # 查看当前作用域中的内容
#     gn()
# fn()
# def outer():
#     print("哈哈")
#     def inner_1():
#         print("呵呵")
#         def inner_1_1():
#             print("嘻嘻")
#         inner_1_1()
#         print("吼吼")
#     def inner_2():
#         print("嘿嘿")
#     inner_2()
#     inner_1()
# outer()

----------------------------------------------------------------------------------------------------------------------------------------------------

2. 命名空间
  1. 内置名称空间
  2. 全局名称空间
  3. 局部名称空间

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

 

作用域:
 1. 全局作用域: 内置+全局
 2. 局部作用域: 局部(函数被调用)
  globals() 查看全局中的内容
  locals() 查看当前作用域中的内容
3. 函数嵌套
  函数可以互相的嵌套
4. global和nonlocal关键
  global: 在局部访问全局中的内容
  nonlocal: 在局部寻找外层函数中离他最近的那个变量

 

# func()
# print(a)
# a = 10
# def outer():
#
#     def inner(): # 在inner中改变a的值
#         nonlocal a # 寻找外层函数中离他最近的那个变量
#         a = 20
#     inner()
#
# outer()
a = 1
def fun_1():
    a = 2
    def fun_2():
        global a
        a = 3
        def fun_3():
            a = 4
            print(a)
        print(a)
        fun_3()
        print(a)
    print(a)
    fun_2()
    print(a)
print(a)
fun_1()
print(a)

 

转载于:https://www.cnblogs.com/songhuasheng/p/9449280.html

内容概要:本文档详细介绍了基于Python的在线二手电子产品回收系统的设计与实现。项目旨在通过构建一个可靠、安全、透明的平台,提高废旧电子产品的回收率,推动资源的合理再利用,提供安全可靠的交易平台,加强环保意识,促进二手市场的发展,并实现数据驱动的智能化服务。项目面临的主要挑战包括废旧电子产品的检测与评估、信息不对称与交易风险、市场需求的预测与定价、用户体验优化及平台的安全性与数据保护。解决方案涵盖智能化评估与回收定价、高效的二手产品处理流程、完善的售后保障体系、创新的市场需求分析、全程透明化与安全性保障以及定制化用户体验。系统采用微服务架构,包括用户管理、商品评估、交易管理、数据分析、支付与结算等模块。项目还涉及前端界面设计、API接口开发、数据库设计与实现、模型训练与优化、部署与应用等方面。 适合人群:具备一定编程基础,特别是对Python和Web开发有一定了解的研发人员,以及对二手电子产品回收和环保事业感兴趣的从业者。 使用场景及目标:①帮助用户方便地将闲置电子产品回收、交易或再利用,提高废旧电子产品的回收率;②通过智能化的数据分析为用户提供价格评估、市场需求分析等服务,提高回收效率;③提供安全可靠的交易平台,确保交易的公平性和安全性;④推动二手市场的健康发展,为消费者提供经济实惠的产品选择;⑤增强公众的环保意识,推动社会向绿色、低碳方向发展。 其他说明:本文档不仅提供了系统的功能模块设计、数据库表结构、API接口规范,还展示了具体代码实现和GUI界面设计,为开发者提供了全面的技术参考。此外,项目强调了数据安全和隐私保护的重要性,确保平台在运行过程中能够有效保护用户信息。项目未来改进方向包括增强模型的精准度、拓展国际市场、提供更多支付和融资选项、跨平台数据集成与分析、更加智能的回收流程以及强化社交化与社区功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值