国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

9種你不知道的Python 3功能

開發 后端
以下是一些罕見特征的說明,這些特征只能在Python 3中找到,目的是快速解決Python問題。

由于Python EOL,一些開發人員已開始將其Python版本從2轉換為3。 最著名的更改之一是Python 3中的print() 函數替換了Python 2中的print函數。但是,如果在print關鍵字之后添加空格,則括號會在Python 2中起作用,因為解釋器會將其視為表達式 。

以下是一些罕見特征的說明,這些特征只能在Python 3中找到,目的是快速解決Python問題。

所有示例均使用Python 3.8.0進行編碼。

[[341679]]

1. 枚舉

Python 3允許您以簡單的方式在Enum類中編寫枚舉。 枚舉由類語法組成,可簡化讀取和寫入的過程,但沒有任何結構-代碼不易產生。

  1. from enum import Enum, auto 
  2. class Fruit(Enum):    APPLE = auto()    ORANGE = auto()    GUAVA = auto()print(Fruit.APPLE) 
  3. # Fruit.APPLE 

當確切值微不足道時,您可以使用自動值來代替。

枚舉是與特定的固定值關聯的符號項(成員)的集合。 在枚舉中,可以通過命名以及單獨迭代枚舉來區分符號名稱。

  1. for fruit in Fruit: 
  2.     print(fruit) 
  3.  -> Fruit.APPLE 
  4. -> Fruit.ORANGE 
  5. -> Fruit.GUAVA 

最低要求Python版本:3.4

2. 類型提示

相對于動態而言,靜態打字是計算機語言中的熱門話題,每個人對此都有自己的見解。 我將允許查看者考慮何時編寫類型。 但是,我覺得您必須了解Python 3支持類型提示。

  1. def fruits_word(line: str) -> bool: 
  2.   return "fruit" in line 
  3. test = fruits_word("I love to eat fresh fruits") 
  4. print(test)# True 

最低要求Python版本:3.5

3. Pathlib

F字符串令人難以置信,但是諸如文件路徑之類的字符串都有其自己的庫,這些庫使操作它們變得更加容易。 Pathlib模塊簡化了各種復雜的情況,并且還優化了一些簡單的情況。 作為使用文件路徑的便捷抽象,Python 3提供了pathlib。

  1. from pathlib import Path 
  2. root = Path('blog_new_folder') 
  3. print(root) 
  4. # blog_new_folder 
  5. path = root / 'new_program' 
  6. print(path.resolve()) 
  7. # /home/vivekcoder/Workspace/My_Programming/Medium-Articles/python3_uncommon_features/blog_new_folder/new_program 

我覺得這篇文章會啟發您在需要處理Python文件時使用Python Pathlib模塊。

最低要求Python版本:3.4

4. F-Strings

在沒有字符串的情況下,很難以任何編程語言執行任何操作,并且您希望使用結構化的方法來使用字符串來保持高效。 大多數使用Python的人都喜歡使用format方法。

  1. import datetime 
  2. name = "Leijie" 
  3. activity = "writing Toutiao article" 
  4. time = datetime.date(2020, 8, 15) 
  5.  message = 'My name is {}, I completed an activity {} on {}.'.format(name, activity, time) 
  6.  print(message) 
  7. # My name is Leijie, I completed an activity writing Toutiao article  on 2020-08-15. 

除了格式外,Python 3還提供了一種通過f字符串插值字符串的通用方法。 上面的帶有f字符串的代碼如下所示:

  1. import datetime 
  2. name = "Leijie" 
  3. activity = "writing Toutiao article" 
  4. time = datetime.date(2020, 8, 15) 
  5. message = f'My name is {name}, I completed an activity {activity} on {time:%A, %B %d, %Y}.' 
  6.  print(message)# My name is Leijie, I completed an activity writing Toutiao article 
  7.   on Saturday, August 15, 2020. 

與利用字符串連接或格式化字符串相比,F-Strings創建的代碼甚至更易于理解和使用。

F字符串允許使用最少的語法將表達式集成到字符串文字中。 應當注意,f-Strings實際上是運行時表達式,而不是固定值。

最低要求Python版本:3.6

5. 內置LRU緩存

如果最新的呼叫是傳入呼叫的最佳預測器,則LRU(最近最少使用)的緩存性能會很好。 (例如,最常見的新聞服務器帖子每天都會變化)。 緩存的大小限制意味著,如果沒有像Web服務器這樣的長時間運行的循環,緩存就不會擴展。

定義用戶功能時,它必須是可調用的。 這使得在Python 3中可以將lru_cache裝飾器直接應用于用戶函數。

下面是一個斐波那契函數的示例,我們知道該函數將從緩存中受益,因為通過遞歸,它可以多次執行相同的工作。

  1. import time 
  2. def fibon(number: int) -> int: 
  3.     if number == 0: return 0 
  4.     if number == 1: return 1 
  5.     return fibon(number-1) + fibon(number-2) 
  6. start = time.time()fibon(20) 
  7. print(f'Duration: {time.time() - start}s') 
  8. -> Duration: 0.007005214691162109s 

在這里,我們可以利用lru-cache對其進行配置。 (這種優化方法稱為備忘錄)。 裝飾器涵蓋了一個具有備忘錄的可調用函數,該函數可存儲最近調用的最大大小。

  1. from functools import lru_cache 
  2. @lru_cache(maxsize=512
  3. def fib_memoization(number: int) -> int: 
  4.     if number == 0: return 0 
  5.     if number == 1: return 1 
  6.         return fib_memoization(number-1) + fib_memoization(number-2) 
  7. start = time.time()fib_memoization(20) 
  8. print(f'Duration: {time.time() - start}s') 
  9. -> Duration: 4.341516078231e-09s 

最低要求Python版本:3.2

6. 擴展的可重復拆包

我將允許代碼在下面回應。 一個示例描述了功能,該功能優于1000個單詞:

  1. x, *y, z = range(4) 
  2. print(x, y, z) 
  3. # 0 [1, 2] 3 
  4. python_version, file_name, topic, *output = "python3.0 hello.py betterprogramming 1 2 3 4".split() 
  5. print(python_version) 
  6. print(file_name) 
  7. print(topic) 
  8. print(output) 
  9. # python3.0 
  10. # hello.py# betterprogramming# ['1', '2', '3', '4'] 
  11. a, b, c, *d = range(7) 
  12. print(b, d) 
  13. # 1 [3, 4, 5, 6] 

最低要求Python版本:3.0

有關擴展的可迭代解壓縮的更多信息,請參見此處的官方Python 3文檔。

7. 數字文字中的下劃線

Python 3.6提供了一種令人興奮的方法,可以通過強調數字來幫助閱讀數字文字。 它可以用于描述例如數千個,十六進制和二進制數。

  1. price = 50_000 
  2.  print(f'Price: {price}') 
  3.  # Price: 50000 
  4. hexa_val = 0xABCD_EFD9 
  5.  print(f'Decimal equivalent: {hexa_val}') 
  6.  # Decimal equivalent: 2882400217 
  7. bin_ary = 0b_0010_0110 
  8.  print(f'Decimal: {bin_ary}') 
  9.  # Decimal: 38 

最低要求Python版本:3.6

8. 賦值表達式-“海象”運算符

在Python的最新版本中,引入了walrus運算符,該運算符可對表達式進行變量分配。 如果您打算稍后在代碼中引用外觀,則可能會有所幫助,并且可以節省一行或兩行代碼。

  1. birds = [‘owl’, ‘hen’, ‘duck’, ‘parrot’] 
  2. for bird in birds:    if (len_bird :len(bird)) > 4: 
  3.         print(f’A bird “{bird}” consists of “{len_bird}”, letters’)# A bird “parrot” consists of “6”, letters 

最低要求Python版本:3.8

9. 數據類

Python 3提供的數據類幾乎沒有什么限制,并且由于裝飾器會自動生成諸如__init __()和__repr __()之類的獨特方法,因此可用于減少樣板代碼。 官方提案將其列為“具有默認值的可變命名元組”。

  1. class Item_list: 
  2.     def __init__(self, name: str, perunit_cost: float, quantity_available: int = 0): 
  3.         self.name = name 
  4.         self.perunit_cost = perunit_cost 
  5.         self.quantity_available = quantity_available 
  6.             def total_cost(self) -> float: 
  7.         return self.perunit_cost * self.quantity_available 
  8. book = Item_list("better programming.", 50, 2) 
  9. x = book.total_cost()print(x)# 100 
  10. print(book)# <__main__.Item_list object at 0x00000052DB9D2A48> 

使用@dataclass裝飾器,您可以編寫相同的實現:

  1. from dataclasses import dataclass 
  2. @dataclassclass Item_list:    name: str    perunit_cost: float    quantity_available: int = 0 
  3.     def total_cost(self) -> float: 
  4.         return self.perunit_cost * self.quantity_available 
  5.     book = Item_list("better programming.", 50, 2) 
  6. x = book.total_cost()print(x)# 100 
  7. print(book) 
  8. # Item_list(name='better programming.'perunit_cost=50quantity_available=2

最低要求Python版本:3.7

有關數據類的進一步說明,請參閱Python 3官方文檔。

關鍵要點

沒有神奇的秘訣,只有細心,勤勞的工作,以及足夠的耐心和實踐。 每天,您需要學習新事物并享受工作,因為這是您成長的唯一途徑。

我相信上述見解可以為您顯示至少一個以前未認識到的Python 3附加功能,并鼓勵您開始編寫更簡潔,更直觀的代碼。

謝謝閱讀!

原文:https://medium.com/better-programming/9-python-3-features-you-might-not-use-yet-fade13932a3e

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2024-12-17 08:33:42

2022-12-07 08:16:50

Vue 3技巧數組

2020-07-28 08:26:34

WebSocket瀏覽器

2020-06-12 09:20:33

前端Blob字符串

2011-09-06 13:56:07

Vista服務器網卡

2015-10-30 09:56:10

WiFiWiFi技術傳感

2009-12-10 09:37:43

2022-10-13 11:48:37

Web共享機制操作系統

2021-02-01 23:23:39

FiddlerCharlesWeb

2011-09-15 17:10:41

2021-01-05 11:22:58

Python字符串代碼

2020-01-29 19:40:36

Python美好,一直在身邊Line

2023-12-21 14:40:09

Python編程語言

2021-03-25 11:19:34

Windows 10Windows微軟

2021-12-17 00:10:00

ChromeDevtools功能

2020-07-31 17:13:28

Python開發工具

2010-08-23 09:56:09

Java性能監控

2022-11-04 08:19:18

gRPC框架項目

2020-09-15 08:35:57

TypeScript JavaScript類型

2019-11-25 14:05:47

Python裝飾器數據
點贊
收藏

51CTO技術棧公眾號

久久美女艺术照精彩视频福利播放| 激情久久五月| 欧美视频在线免费| www.日本少妇| 精品国产123区| 亚洲欧洲在线免费| 欧美色视频免费| 国产精品99久久久| 国产精品二区三区四区| 另类春色校园亚洲| 亚洲国产欧美一区二区三区久久| 免费av播放| 91免费在线视频观看| 亚洲一区三区视频在线观看| 欧美日韩伦理| 高清欧美电影在线| 成人午夜精品| 日韩精品一区二区三区四区 | av手机天堂| 国产高清不卡一区| 欧美一区二区三区四区在线观看地址| 美女亚洲一区| 久久福利视频网| 亚洲电影观看| 日韩精品影音先锋| 久久精品水蜜桃av综合天堂| 99久久精品久久久久久ai换脸| 精品人人人人| 欧美xxxx18性欧美| 青青伊人久久| 中文字幕精品av| 男人av在线播放| 欧美精品一区二区在线播放| 成人在线影视| 制服丝袜av成人在线看| 国产一区精品| 欧美色xxxx| 九色在线观看| 欧美中文字幕亚洲一区二区va在线| 亚洲欧美一区二区三区在线播放| 亚洲精品日日夜夜| 黄色福利视频网站| 亚洲毛片av在线| 91国产精品视频在线观看| 久久精品视频在线免费观看| 国语对白做受xxxxx在线中国| 91免费版在线看| av免费网站观看| 国产精品入口麻豆九色| 黄色片视频在线| 亚洲女性喷水在线观看一区| 22288色视频在线观看| 午夜国产不卡在线观看视频| 香蕉影院在线| 欧美日韩在线电影| 黄色在线免费看| 亚洲成人激情图| 日韩欧美亚洲日产国| 欧美电影《睫毛膏》| 91精品国产aⅴ一区二区| 九一免费在线观看| 超碰10000| 高清不卡一二三区| 欧美亚洲精品一区二区| 久久先锋影音av鲁色资源网| 免费看黄色一级大片| 亚洲欧美一区二区三区孕妇| 女人被爽到呻吟gif动态图下载| 亚洲精品国产精华液| 污视频在线观看网站| 欧美精品一级二级| 免费高潮视频95在线观看网站| 欧美91在线| h片在线免费| 国产视频丨精品|在线观看| 97精品国产99久久久久久免费| 欧美成人合集magnet| 亚洲日产av中文字幕| 国产精品一区视频网站| 久久国产精品区| 最近免费中文字幕中文高清百度| 一区二区三区在线视频观看| 久久久久久久久久久久av| 精品成在人线av无码免费看| 国产精品国产自产拍在线| 黄动漫视频高清在线| 欧美一区二区三区视频在线 | 丁香五月缴情综合网| 国产欧美亚洲视频| 美女一区二区久久| 久草在线在线视频| 制服丝袜在线91| 另类视频一区二区三区| 91精品国产一区二区三区动漫| 久久99精品久久久久久动态图| 中文久久久久久| 欧美日韩综合在线| 97精品资源在线观看| 91精品一区二区| 国产乱色国产精品免费视频| 成人频在线观看| 亚洲开心激情网| 午夜精品毛片| 妺妺窝人体色777777| 色综合天天综合给合国产| 欧美日韩激情电影| 99精品国产高清一区二区| 91啪九色porn原创视频在线观看| 国内在线精品| 欧美黄色www| 免费成人av资源网| 91精品国产一区二区三密臀| 亚洲欧美国产精品专区久久| 无需播放器亚洲| 乱子伦视频在线看| 亚洲第一天堂av| 亚洲成人精品| 亚洲精品一二三四五区| 亚洲国产欧美在线成人app| 四季av在线一区二区三区| 欧美国产亚洲一区| 日韩欧美www| 欧美黄色免费| 国产激情99| 久久这里只有精品99| 日韩不卡手机在线v区| 日韩欧美亚洲系列| 国内偷自视频区视频综合| 久久超碰97中文字幕| 成人av电影观看| 国产精品免费久久久| 久久久青草青青国产亚洲免观| 成人免费网站观看| 久久精品美女| 色综合久久久久久久| 国产一区网站| 免费看污污网站| 日韩中文在线中文网在线观看| 日韩精品欧美精品| 在线免费av网站| 成人精品久久久| 亚洲永久精品大片| 亚洲精品3区| 91国产精品视频在线观看| 在线日韩日本国产亚洲| 久久国内精品自在自线400部| 国产三级视频在线| 99se婷婷在线视频观看| 五月天久久比比资源色| 国产探花在线精品| 成年网站免费| 欧美在线亚洲在线| 亚洲欧美偷拍卡通变态| 久久久伦理片| 日本不卡一区在线| 色综合男人天堂| 国产欧美一区二区精品秋霞影院| 激情久久一区二区| 国产美女网站在线观看| 亚洲一二在线观看| 成人视屏免费看| 亚洲福利影视| 国产肥臀一区二区福利视频| 日韩性生活视频| 26uuu色噜噜精品一区二区| 亚洲精品aa| 激情综合网俺也去| 97在线日本国产| 亚洲精选视频在线| 日韩精品不卡一区二区| 青青青手机在线视频观看| 国产精品伊人日日| 日韩欧美美女一区二区三区| 久久99精品久久久久久久久久久久| 高清电影一区| 午夜免费精品视频| 欧美亚洲视频一区二区| 亚洲成av人影院| 怡红院精品视频在线观看极品| av在线app| 免费的av在线| 久久777国产线看观看精品| 亚洲欧美激情在线| 欧美大片一区| 国产探花在线观看| 国产a级片网站| 91超碰caoporn97人人| 色88888久久久久久影院野外| 先锋亚洲精品| 久久不卡日韩美女| siro系绝美精品系列| av色综合网| 亚洲国产精品va在线看黑人 | 国产精品入口尤物| 欧美亚洲高清一区二区三区不卡| 日韩精品一卡二卡三卡四卡无卡| 欧美色片在线观看| 麻豆福利视频| 久久99精品久久久久久三级| 一区二区三区视频免费|