zoukankan      html  css  js  c++  java
  • 选择最佳策略:简单的方式和globals()

    promos = [fidelity_promo, bulk_item_promo, large_order_promo] ➊
    def best_promo(order): ➋
        """选择可用的最佳折扣
        """
        return max(promo(order) for promo in promos) ➌
     
    globals()
     
    返回一个字典,表示当前的全局符号表。这个符号表始终针对当前 模块(对函数或方法来说,是指定义它们的模块,而不是调用它们的模 块)。
    promos = [globals()[name] for name in globals() ➊
                    if name.endswith('_promo') ➋
                    and name != 'best_promo'] ➌
    def best_promo(order):
        """选择可用的最佳折扣
        """
        return max(promo(order) for promo in promos) ➍        
    ❶ 迭代 globals() 返回字典中的各个 name。
    ❷ 只选择以 _promo 结尾的名称。
    ❸ 过滤掉 best_promo 自身,防止无限递归。
    ❹ best_promo 内部的代码没有变化。
     
    人生就是要不断折腾
  • 相关阅读:
    别让猴子翻到背上
    python生成二维码
    50条经典爱情观
    智力测试题
    SQL数据库优化
    递归函数实现二分查找法
    软件开发类别
    递归函数的深度问题
    UVALive
    UVALive
  • 原文地址:https://www.cnblogs.com/xiangxiaolin/p/11649853.html
Copyright © 2011-2022 走看看