自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這個(gè)被忽略的細(xì)節(jié),是編寫優(yōu)秀 Python 代碼的必經(jīng)之路

開發(fā) 前端
我們可以在 a? 和 b 中傳遞浮點(diǎn)數(shù)或字符串,Python 不限制,允許代碼運(yùn)行。類型提示的主要目的是指導(dǎo)其他開發(fā)者閱讀我們的代碼時(shí),明確數(shù)據(jù)類型應(yīng)當(dāng)為何。

某個(gè)操作在Python編寫代碼中是可選的,意味著它不是必須的。但要想寫出好的Python代碼,你就必須這樣做。這就是 Python 中的類型提示。

圖片圖片

Python 中數(shù)據(jù)類型的問題

Python是一種動態(tài)類型編程語言,變量的類型是在運(yùn)行時(shí)分配的,無需在賦值之前定義特定類型。

a = 5

變量 a 被賦值為 5,在此之前,無需聲明 a 存儲整數(shù),直接將 5 賦值給 a。

def add(a, b):
  return a+b

print(add(4, 5))           # 9
print(add(4.0, 5.0))       # 9.0
print(add('hi', 'world'))  # hiworld
print(add([1,2], [3,4]))   # [1, 2, 3, 4]

add 接收兩個(gè)變量 a 和 b 并返回 a+b。但 a 和 b 應(yīng)該是什么數(shù)據(jù)類型呢?

  • 如果我們輸入整數(shù),就會得到一個(gè)整數(shù)
  • 如果傳入浮點(diǎn)數(shù),我們得到一個(gè)浮點(diǎn)數(shù)
  • 如果傳入字符串,我們得到一個(gè)字符串
  • 如果我們傳入列表,我們得到一個(gè)列表

Python并不在乎你傳入a和b的參數(shù)。如果出現(xiàn)錯(cuò)誤,你需要自己解決。盡管如此,類型提示可能會有所幫助。

類型提示介紹

在 Python 中,類型提示是可選的。如果不使用它們,Python 也能正常運(yùn)行。然而,對于其他開發(fā)者來說,類型提示能讓我們的代碼更易讀。

def add(a: int, b: int) -> int:
  return a + b

在 a 和 b 后面加上 : int,在函數(shù)結(jié)尾 ) 后面加上 -> int 是類型提示,指示函數(shù)的參數(shù)和返回類型。

  • a 應(yīng)該是整數(shù)
  • b 也應(yīng)該是一個(gè)整數(shù)
  • 函數(shù)的返回值也應(yīng)該是整數(shù)

類型提示并非強(qiáng)制數(shù)據(jù)類型,而是為了提示而存在的,這一點(diǎn)需要注意。

def add(a: int, b: int) -> int:
  return a + b

print(add(4, 5))           # 9
print(add(4.0, 5.0))       # 9.0
print(add('hi', 'world'))  # hiworld

我們可以在 a 和 b 中傳遞浮點(diǎn)數(shù)或字符串,Python 不限制,允許代碼運(yùn)行。類型提示的主要目的是指導(dǎo)其他開發(fā)者閱讀我們的代碼時(shí),明確數(shù)據(jù)類型應(yīng)當(dāng)為何。

類型提示的一些優(yōu)勢

  • 開發(fā)人員能夠迅速確定函數(shù)或方法應(yīng)使用的數(shù)據(jù)類型
  • 其他開發(fā)人員能夠快速了解函數(shù)或方法應(yīng)返回的數(shù)據(jù)類型
  • 減少了變量數(shù)據(jù)類型的猜測和確認(rèn)的時(shí)間
  • 提高了代碼的整體可讀性

盡管類型提示是可選的,但它是編寫優(yōu)秀可讀代碼的必備條件。

雖然僅僅使用類型提示并不能讓代碼變得優(yōu)秀

基礎(chǔ)類型提示

a: int = 5
# a should be an integer

變量類型提示

def avg(a:int, b:int) -> float:
  return (a+b)/2

函數(shù)類型提示

  • a和 b應(yīng)為整數(shù)
  • 函數(shù)應(yīng)返回浮點(diǎn)數(shù)值

復(fù)雜類型的類型提示

但如果我們有一個(gè)整數(shù)列表呢?不用擔(dān)心,內(nèi)置的 typing 模塊提供了一些有用的類型提示功能。

from typing import List

def average(numbers: List[int]) -> float:
  return sum(numbers)/len(numbers)

numbers 應(yīng)是一個(gè)整數(shù)列表。

from typing import Dict

def count(d: Dict[str, int]) -> int:
  # stuff

d 應(yīng)該是一個(gè)字典,其中鍵是字符串,值是整數(shù)。

class Dog:
  pass

from typing import List

def magic(dogs: List[Dog]) -> int:
  # stuff

dogs 應(yīng)該是一個(gè)包含自定義 dog 對象的列表。

寫在最后

掌握類型提示并不困難,但它可以提高代碼的可讀性。在編寫優(yōu)秀的Python代碼時(shí),使用類型提示是至關(guān)重要的,特別是在開發(fā)大型企業(yè)應(yīng)用程序并需要與其他開發(fā)人員合作時(shí)。

責(zé)任編輯:武曉燕 來源: 數(shù)據(jù)STUDIO
相關(guān)推薦

2018-02-06 09:58:48

架構(gòu)師MVCiOS

2017-03-21 13:00:05

網(wǎng)絡(luò)融合光網(wǎng)絡(luò)通信網(wǎng)絡(luò)

2010-11-03 10:12:58

信息安全服務(wù)必經(jīng)之路

2015-10-13 13:54:16

2019-07-29 08:07:57

工業(yè)互聯(lián)網(wǎng)互聯(lián)網(wǎng)平臺IIOT

2019-08-12 07:45:44

Linux腳本shell

2018-08-22 16:35:31

存儲

2012-09-10 09:55:25

2017-09-18 17:00:04

云深度學(xué)習(xí)機(jī)器學(xué)習(xí)云服務(wù)

2019-03-19 20:09:35

5G毫米波移動通信

2023-03-27 15:05:10

Python技巧

2019-06-06 15:49:53

多線程iOS開發(fā)操作

2013-11-14 10:06:10

2021-12-16 16:55:59

元宇宙

2025-03-04 08:40:00

開發(fā)varJavaScrip

2018-09-05 18:55:31

2009-07-09 14:57:08

JDK環(huán)境配置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號