Python3.8 特性介紹

簡介

Python3.8 已經(jīng)發(fā)布了, 官方文檔看這里
What’s New In Python 3.8.

介紹一些 Python3.8 中的新特性.

海象表達(dá)式 :=

新的語法 := 將給變量賦值, 這個(gè)變量是更大的表達(dá)式的一部分.

if (n := len(a)) > 10:
  print(f"List is too long ({n} elements, expected <= 10)")

用在 if 判斷中, 避免調(diào)用 len() 兩次.

discount = 0.0
if (mo := re.search(r'(\d+)% discount', advertisement)):
  discount = float(mo.group(1)) / 100.0

正則表達(dá)式匹配和獲取結(jié)果的時(shí)候.

# Loop over fixed length blocks
while (block := f.read(256)) != '':
  process(block)

用在 while 循環(huán)中, 可以同時(shí)取值, 并判斷是否為空.

[clean_name.title() for name in names
 if (clean_name := normalize('NFC', name)) in allowed_names]

用在列表推導(dǎo)中.

完整介紹看 PEP 572.

僅位置參數(shù) /

新的函數(shù)參數(shù)語法 / 指明有些函數(shù)參數(shù)必須被指定為位置參數(shù), 不能被用作關(guān)鍵字參數(shù).

def f(a, b, /, c, d, *, e, f):
  print(a, b, c, d, e, f)

在上面的例子中, a 和 b 是僅位置參數(shù), c 和 d 既可以是位置參數(shù)又可以是關(guān)鍵字參數(shù),
e 和 f 必須是關(guān)鍵字參數(shù).

>>> def f(a, b, /, **kwargs):
...     print(a, b, kwargs)
...
>>> f(10, 20, a=1, b=2, c=3)         # a and b are used in two ways
10 20 {'a': 1, 'b': 2, 'c': 3}

僅位置參數(shù)的參數(shù)名在 **kwargs 中仍舊可用.

class Counter(dict):
  def __init__(self, iterable=None, /, **kwds):
    # Note "iterable" is a possible keyword argument

完整介紹看 PEP 570.

f-strings 說明符 =

f-strings 增加了 = 說明符, f'{expr=}' 會(huì)被擴(kuò)展為表達(dá)式的文本,
加上一個(gè)等號(hào), 和一個(gè)執(zhí)行表達(dá)式的結(jié)果.

>>> user = 'eric_idle'
>>> member_since = date(1975, 7, 31)
>>> f'{user=} {member_since=}'
"user='eric_idle' member_since=datetime.date(1975, 7, 31)"

啟動(dòng)異步 REPL

使用 python -m asyncio 啟動(dòng)一個(gè)異步的 REPL,
可以直接在 top-level 級(jí)別使用 await,
不用在封裝到函數(shù)中了.

unittest 支持異步

import unittest

class TestRequest(unittest.IsolatedAsyncioTestCase):

    async def asyncSetUp(self):
        self.connection = await AsyncConnection()

    async def test_get(self):
        response = await self.connection.get("https://example.com")
        self.assertEqual(response.status_code, 200)

    async def asyncTearDown(self):
        await self.connection.close()


if __name__ == "__main__":
    unittest.main()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宝穗,一起剝皮案震驚了整個(gè)濱河市肩榕,隨后出現(xiàn)的幾起案子凉蜂,更是在濱河造成了極大的恐慌,老刑警劉巖钝凶,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異敞曹,居然都是意外死亡丧靡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門歉秫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛾洛,“玉大人,你說我怎么就攤上這事雁芙⊙盘叮” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵却特,是天一觀的道長。 經(jīng)常有香客問我筛圆,道長裂明,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任太援,我火速辦了婚禮闽晦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘提岔。我一直安慰自己仙蛉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布碱蒙。 她就那樣靜靜地躺著荠瘪,像睡著了一般夯巷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哀墓,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天趁餐,我揣著相機(jī)與錄音,去河邊找鬼篮绰。 笑死后雷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吠各。 我是一名探鬼主播臀突,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼贾漏!你這毒婦竟也來了候学?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤磕瓷,失蹤者是張志新(化名)和其女友劉穎盒齿,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體困食,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡边翁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了硕盹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片符匾。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瘩例,靈堂內(nèi)的尸體忽然破棺而出啊胶,到底是詐尸還是另有隱情,我是刑警寧澤垛贤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布焰坪,位于F島的核電站,受9級(jí)特大地震影響聘惦,放射性物質(zhì)發(fā)生泄漏某饰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一善绎、第九天 我趴在偏房一處隱蔽的房頂上張望黔漂。 院中可真熱鬧,春花似錦禀酱、人聲如沸炬守。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽减途。三九已至酣藻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間观蜗,已是汗流浹背臊恋。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留墓捻,地道東北人抖仅。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像砖第,于是被迫代替她去往敵國和親撤卢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容