functools

functools - Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ functools ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, любой Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для Ρ†Π΅Π»Π΅ΠΉ этого модуля.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ functools опрСдСляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • @functools.cache() - ΠΊΠ΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

  • @functools.cached_property() - ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ класса Π² ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ свойство

  • functools.cmp_to_key() - ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сравнСния старого стиля Π² ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

  • @functools.lru_cache() - Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ для обСртывания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠ΅ΠΌΠΎΠΈΠ·ΠΈΡ€ΡƒΡ‰ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ

  • @functools.total_ordering - дополняСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ упорядочивания (большС, мСньшС, Ρ€Π°Π²Π½ΠΎ ΠΈ Ρ‚.ΠΏ.)

  • functools.partial() - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ partial, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с Π΄ΠΎΠΏ. Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

  • class functools.partialmethod() - Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ partial, Π½ΠΎ для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² классов

  • functools.reduce()

  • @functools.singledispatch

  • class functools.singledispatchmethod()

  • functools.update_wrapper() - обновляСт ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π΄ΠΎ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ

  • @functools.wraps() - удобная функция Π²Ρ‹Π·ΠΎΠ²Π° update_wrapper(), Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ partial

  • partial.func

  • partial.args

  • partial.keywords

Last updated

Was this helpful?