ÀÖÓãµç¾º

  • ½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

    È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

    Æ«º¯ÊýÊÇʲô£¿FunctoolsÄ£¿éÆ«º¯ÊýÏê½â

    ¸üÐÂʱ¼ä:2019Äê09ÔÂ12ÈÕ16ʱ34·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:

    1. Æ«º¯ÊýÊÇʲô

    ÏȻعËÒ»ÏÂÎÒÃÇʹÓú¯ÊýµÄ¹ý³Ì¡£Ê×ÏÈÎÒÃÇÏȶ¨ÒåÒ»¸öº¯Êý£¬Èç

    def func():

    print("in func")

    È»ºóÎÒÃǵ÷ÓÃÕâ¸öº¯Êý£¬¼´Ö´ÐдúÂ룬 Èç

    func() # ½«»á´òÓ¡³ö in func

    ½ÓÏÂÀ´ÎÒÃÇ˵һ˵ƫº¯Êý¡£

    ´î¸ÁºÃÎÒÊÇ C ¸ç¡£

    ¼ÙÉèÎÒͨ¹ýѧϰ±à³Ì×ßÉÏÈËÉúá۷壬Ñü²øÍò¹á£¬½ÓÏÂÀ´ÐèÒª¹ºÖ÷¿²ú°²¼ÒƽÌìÏ¡£½ÓÏÂÀ´ÎÒÃǵÄʱ¼äºÜ±¦¹ó£¬ÎÒ²»Ì«¿ÉÄܰÑ×Ô¼ºÍ¶Èëµ½ ¿´ÅÌ¡¢Ñ¡ÅÌ¡¢Òé¼Û¡¢½»¶¨½ð¡¢Ç©ºÏͬ¡¢¹ý»§µÈºÄ·Ñʱ¼äµÄÊÂÇéÉÏ¡£´ËʱÎÒ¿ÉÄܻῼÂÇÇëÒ»¸ö·¿²úÖнéÀ´°ïÖúÍê³ÉÕâһϵÁÐÊÂÇé¡£Ëùνƫº¯Êý£¬Í¨Ë×½âÊÍÆ«º¯Êý¾ÍÊÇÎÒÃǵÄÒ»¸ö·¿²úÖн顣²»¹ÜÊÇÎÒ×Ô¼º»¹ÊÇ·¿²úÖнéÂò·¿×öµÄ²½ÖèÆäʵ¶¼ÊÇÒ»Ñù£¬Ö»ÊÇÊÇÖн黨ʱ¼äÈ¥Íê³ÉµÄ¡£

    Õâ¾ÍºÃ±ÈÓÐÒ»¸öÂò·¿µÄº¯Êý

    def ΪC¸çÂò·¿(Éí·ÝÖ¤,ÎÞ·¿Ö¤Ã÷,µ¥ÉíÖ¤Ã÷):

    print("¿ªÊ¼Âò·¿")

    Èç¹ûÊÇÎÒÃÇ×Ô¼ºÇ×Á¦Ç×ΪÔòÐèÒªÕâÑùµ÷ÓÃ

    ÎÒ.ΪC¸çÂò·¿('Éí·ÝÖ¤ºÅÂë','Ö¤Ã÷·¿²úµÄÖ¤¾Ý','Ö¤Ã÷µ¥ÉíµÄÖ¤¾Ý')

    Æ«º¯ÊýʹÓÃ


    2. ʹÓ÷½Ê½

    ? ½ÓÏÂÀ´ÎÒÃÇÀ´¿´¿´Æ«º¯ÊýµÄʹÓ÷½Ê½¡£ÏȻص½¹ÊÊ£¬ÎÒÏȰÑÂò·¿²Ù×÷ÐèÒªµÄÊý¾Ý½»¸øÖн鹫˾£¬È»ºóÓÉÖн鹫˾µÄÒ»¸öÔ±¹¤ÌæÎÒÖ´ÐÐÕâ¸öÂò·¿²Ù×÷¼´¿É¡£

    СÕÅ = Öн鹫˾('Éí·ÝÖ¤ºÅÂë','Ö¤Ã÷·¿²úµÄÖ¤¾Ý','Ö¤Ã÷µ¥ÉíµÄÖ¤¾Ý')

    СÕÅ.ΪC¸çÂò·¿()

    ? ËùÒԷº¯ÊýÆäʵ¾ÍÊÇÒ»¸ö´úÀí¡£ÎÒÃÇΪÁ˸ü¼òµ¥µÄ²Ù×÷£¬¿ÉÒÔʹÓּ¯Êý´úÀí°ïÎÒÃÇÈ¥Ö´ÐÐÒ»¶Î´úÂëÂß¼­£¬µ±È»Õâ¸ö¹¦ÄÜËùÐèµÄ²ÎÊýÊý¾ÝÒªÇóÎÒÃÇ×Ô¼ºÌṩ£¬×ܲ»ÄÜÈÃÖнéÓÃËûµÄÉí·ÝÖ¤¸ø C ¸çÂò·¿°É¹þ¹þ¹þ¡£

    ÑÔ¹éÕý´«¡£¿´¿´Æ«º¯ÊýµÄÓ÷¨¡£

    # 1 ´´½¨Öнé¶ÔÏó ²¢¸øÕâ¸ö¶ÔÏ󴫲Π¸æËßËû×öʲôÊÂÇé ÐèÒªÄÄЩÊý¾Ý

    # partial¶ÔÏó º¯Êý´úÂëÈë¿Ú(º¯ÊýÃû) º¯Êý²ÎÊý

    partial¶ÔÏó = functools.partial(func, *args, **keywords)

    # 2 ÈÃÖнé¶ÔÏó Ö´ÐÐÎÒÃÇίÍиøËûµÄÈÎÎñ

    partial¶ÔÏó()

    Ó÷¨Ã÷È·ÁË£¬½ÓÏÂÀ´ÎÒÃÇ¿´¿´¾ßÌå´úÂë¡£

    from functools import partial # µ¼ÈëÆ«º¯Êý

    # ¶¨Òå²Ù×÷

    def add(number1, number2, number3):

    return number1 + number2 + number3

    # ¶¨Ò寫partialº¯Êý¶ÔÏó

    p = partial(add, 100, 99, 100)

    # µ÷ÓÃpartial¶ÔÏó Ö´Ðй¦ÄÜ

    print(p()) # Ö´Ðнá¹ûÊÇ 299

    È»¶øÕâ²¢²»ÊÇÆ«º¯ÊýµÄËùÓÐʹÓ÷½Ê½£¬ÒÔÉÏÕâÖÖÇé¿öÌ«ÀíÏë¡£¸ü¼Óʵ¼ÊµÄÇé¿öÊÇÕâÑùµÄ¡£

    Ê×ÏȻص½¹ÊÊ£¬ÓпÉÄÜ C ¸çÔÚίÍÐÖнéµÄʱºòֻίÍÐÁËÉí·ÝÖ¤²¢Ã»ÓÐÌṩÆäËûÖ¤Ã÷£¬ÄÇÕâʱºò СÕÅÈ¥²Ù×÷ʱ¾Í»áȱÉÙÖ¤Ã÷¡£ËùÒÔµ± C ¸çÈ¥ÈÃСÕŽøÐÐÂò·¿²Ù×÷ʱ»¹Ó¦¸Ã²¹ÆëÊ£ÓàËùÐèµÄÊý¾Ý¡£

    »Øµ½python´úÂ룬ͬÀíÎÒÃÇÔÚ´´½¨Æ«º¯Êý¶ÔÏóʱ¿ÉÒÔÖ»´«ÈëÒ» ²¿·Ö ²ÎÊý£¬ÔÚÖ´ÐÐÆ«º¯Êý¶ÔÏóʱÔÙ´«ÈëÊ£Óà ²¿·Ö µÄ²ÎÊý¡£(Ëùν partial ¾ÍÊDz¿·ÖµÄÒâ˼£¬¶à¶àÀí½âÕâÀﲿ·ÖµÄº¬Òå)

    ËùÒÔ¿ÉÄÜ´úÂë»á±ä³ÉÕâÑù

    from functools import partial # µ¼ÈëÆ«º¯Êý

    # ¶¨Òå²Ù×÷

    def add(number1,number2,number3):

    return number1 + number2 + number3

    # ¶¨Ò寫partialº¯Êý¶ÔÏó

    p = partial(add, 100, 99)

    # µ÷ÓÃpartial¶ÔÏó Ö´Ðй¦ÄÜ

    print(p()) # ±¨´í ÒòΪȱÉÙÒ»¸ö±ØÒªµÄλÖòÎÊý

    print(p(100)) # Ö´Ðнá¹ûÊÇ 299

    print(p(101)) # Ö´Ðнá¹ûÊÇ 300

    3. Æ«º¯Êý¶ÔÏóÆÊÎö

    ÔÙ´ÎÇ¿µ÷һϠƫº¯Êý¾ÍÊÇÒ»¸öÖн飬Öнé°ïÎÒÃÇÖ´ÐÐίÍеÄÈÎÎñ£¬²¢ÇÒÒªÇóÎÒÃÇÌṩÈÎÎñÏà¹ØÊý¾Ý¡£

    ˵µ½Õâ¶ù´ó¼Ò¾Í»áºÜºÃÆæÆ«º¯ÊýÊÇÔõô×öµ½µÄ¡£

    Ê×Ïȵ±ÎÒÃÇ´´½¨Ò»¸ö partial ¶ÔÏóʱÕâ¸ö¶ÔÏóÖ»×öÁËÒ»¼þʾÍÊÇ ±£´æÐèÒªÖ´ÐеÄÄ¿±ê´úÂëÈë¿Ú(º¯ÊýÃû)¡£

    from functools import partial # µ¼ÈëÆ«º¯Êý

    # ¶¨Òå²Ù×÷

    def add(number1,number2,number3):

    return number1 + number2 + number3

    # ¶¨Ò寫partialº¯Êý¶ÔÏó

    p = partial(add, 100, number2=99)

    # »ñÈ¡¶ÔÏóÖб£´æµÄ Ä¿±ê´úÂëÈë¿Ú

    print(p.func) #

    print(add) #

    # ͨ¹ý½á¹ûÑéÖ¤: µ±ÎÒÃÇʹÓà p(100)ʱ»áÖ´ÐÐ p ¶ÔÏóµÄ__call__·½·¨µ¼ÖÂÖ´ÐÐ p.func

    # Èç¹ûÏëÒª²é¿´ partial ¶ÔÏóÏà¹Ø²ÎÊý

    print(p.args) # »ñȡĿ±ê´úÂë Ïà¹ØµÄλÖòÎÊý (100,)

    print(p.keywords) # »ñȡĿ±ê´úÂë Ïà¹ØµÄ¹Ø¼ü×Ö²ÎÊý {'number2': 99}

    ? ÔÙ´ÎÇ¿µ÷һϠƫº¯Êý¾ÍÊÇÒ»¸öÖн飬Öнé°ïÎÒÃÇÖ´ÐÐίÍеÄÈÎÎñ£¬²¢ÇÒÒªÇóÎÒÃÇÌṩÈÎÎñÏà¹ØÊý¾Ý¡£

    4. Ó¦Óó¡¾°

    ½ÓÏÂÀ´ÔÛÃÇ˵һ˵ƫº¯ÊýÔÚʵ¼Ê¿ª·¢ÖеÄÓ¦Óó¡¾°:

    Æ«º¯Êý¿ÉÒÔÌáǰ¸øº¯Êý°ó¶¨Ò»²¿·Ö²ÎÊý£¬ÔÚÖ´ÐÐʱÔÙ´«ÈëÁíÒ»²¿·Ö²ÎÊýÏԵúܼò½à¡£±ÈÈçÎÒÃÇÓÐÒ»¸öº¯ÊýÐèÒª¼ÆËãÁ½¸öÈÕÆÚÖ®¼äµÄÌìÊý¡£

    def getDays(date1, date2):

    ʵÏÖÊ¡ÂÔ

    return ¼ä¸ôÌìÊý

    ÔںܶàÇé¿öÏ¿ÉÄܵÚÒ»¸ö²ÎÊý¾ÍÊÇÒ»¸ö¹Ì¶¨µÄÈÕÆÚ ±ÈÈç

    # Çó'2019-07-01',ÏÖÔÚÎÒÏëÒª¼ÆËãÕâÒ»Ììµ½'2050-01-01'ÒÔ¼° µÄÌìÊý

    getDays('2019-07-01', '2050-01-01')

    # Çó'2019-07-01'µ½'2020-01-01'ÒÔ¼° µÄÌìÊý

    getDays('2019-07-01', '2020-01-01')

    getDays('2019-07-01', '2017-01-01')

    getDays('2019-07-01', '2017-08-17')

    # Èç¹ûÓÐÆ«º¯Êý ¿ÉÒÔÌáǰÌṩ²¿·Ö²ÎÊý Õâôд¼´¿É

    from functools import partial

    g1 = partial(getDays, '2019-07-01')

    g1('2050-01-01')

    g1('2020-01-01')

    g1('2017-01-01')

    g1('2017-08-17')

    # Èç¹ûÆðʼÈÕÆÚÐèÒª±ä»¯

    g2 = partial(getDays, '2018-09-08')

    g2('2050-01-01')

    g2('2020-01-01')

    g2('2017-01-01')

    g2('2017-08-17')

    ¶øÕâÑùÌṩµÄÓï·¨±ãÀûÊÇ º¯ÊýµÄĬÈϲÎÊýËù²»ÄÜ´ïµ½µÄ¡£


    ÍÆ¼öÁ˽⣺
    python+È˹¤ÖÇÄܿγÌ
    ´óÊý¾ÝÅàѵ¿Î³Ì

    0 ·ÖÏíµ½£º
    ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
    ¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿