這是函數(shù)注解,Python 3.x引入,它的特點有
創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,先為靖安等服務(wù)建站,靖安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為靖安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
對函數(shù)的參數(shù)進(jìn)行類型注解,以冒號標(biāo)記
對函數(shù)的返回值進(jìn)行類型注解,以箭頭標(biāo)記
只對函數(shù)參數(shù)或返回值做一個輔助的說明,并不對函數(shù)參數(shù)或返回值進(jìn)行類型檢查
提供給第三方工具,做代碼分析,發(fā)現(xiàn)隱藏bug
函數(shù)注解的信息,保存在__annotations__屬性中
注解本身是一個字典類型的數(shù)據(jù)
你的程序我?guī)湍阃晟屏?函數(shù)注解部分的解釋見注釋),你看看吧
from?typing?import?List
def?f(a)?-?List[dict]:?#函數(shù)注解,返回一個字典列表,但是它不對返回值類型進(jìn)行檢查
print(a)??#打印字典
return?[a]?#返回字典列表
print(f.__annotations__)?#打印函數(shù)注解
l={'Name':?'Zara','Age':17}?#把字典傳入函數(shù)
print(f(l))?#打印函數(shù)返回值
源代碼(注意源代碼的縮進(jìn))
在Python的數(shù)據(jù)可視化庫中,采用matplotlib繪制相關(guān)圖形時,若不加任何設(shè)定,一般的x-y坐標(biāo)軸是不帶箭頭且是一個封閉的矩形。我們以Sigmoid函數(shù)的繪制,給大家展示一下。
matplotlib的輔助工具,包含一系列對坐標(biāo)軸設(shè)置的框架。其中的axisartist包就用來設(shè)置坐標(biāo)軸的類型。
1.創(chuàng)建畫布并引入axisartist工具。
2.繪制帶箭頭的x-y坐標(biāo)軸
我們先把原始的如上圖的所有坐標(biāo)軸隱藏,即長方形的四個邊。
然后用ax.new_floating_axis在繪圖區(qū)添加坐標(biāo)軸x、y,這里的ax.new_floating_axis(0,0),第一個0代表平行直線,第二個0代表該直線經(jīng)過0點。同樣,ax.axis["y"] = ax.new_floating_axis(1,0),則代表豎直曲線且經(jīng)過0點。
再次,x.axis["x"].set_axisline_style("-", size = 1.0)表示給x軸加上箭頭,"-"表示是空箭頭,size = 1.0表示箭頭大小。ax.axis["y"].set_axisline_style("-|", size = 1.0)中"-|"則是實心箭頭。
最后,設(shè)置x、y軸上刻度顯示方向,對于x軸是刻度標(biāo)簽在上面還是下面,y軸則是刻度標(biāo)簽在左邊還是右邊。
3.在帶箭頭的x-y坐標(biāo)軸背景下,繪制函數(shù)圖像
tist坐標(biāo)軸工具——將原始坐標(biāo)軸均隱藏掉——添加新的基于原點的x與y軸——為新坐標(biāo)軸加入箭頭,并設(shè)置刻度顯示方式——加入圖形。
1、那個是函數(shù)定義中,返回值的類型說明。沒有具體作用,相當(dāng)于注釋。
2、沒有為什么,是python的語法。字典就是可以:字典["key"]=value這樣來添加鍵值對。
你用的graphics模塊?這不是內(nèi)置的,雖然它是調(diào)用內(nèi)置的Tkinter畫圖。
option可以是"first","last","both"或"none"。見graphics.py:
def setArrow(self, option):
if not option in ["first","last","both","none"]:
raise GraphicsError(BAD_OPTION)
self._reconfig("arrow", option)
細(xì)節(jié)要查Tk文檔:
6.6. The canvas line object
In general, a line can consist of any number of segments connected end to end, and each segment can be straight or curved. To create a canvas line object on a canvas C, use:
id = C.create_line ( x0, y0, x1, y1, ..., xn, yn, option, ... )
The line goes through the series of points
(x0,
y0),
(x1,
y1),
…
(xn,
yn).
Options include:
arrow The default is for the line to have no arrowheads. Use
arrow=FIRST to get an arrowhead at the(x0,y0)end of the line. Use
arrow=LAST to get an arrowhead at the far end. Use
arrow=BOTH for arrowheads at both ends.
你用的graphics模塊?這不是內(nèi)置的,雖然它是調(diào)用內(nèi)置的Tkinter畫圖。
option可以是"first","last","both"或"none"。見graphics.py:
def setArrow(self, option):
if not option in ["first","last","both","none"]:
raise GraphicsError(BAD_OPTION)
self._reconfig("arrow", option)
細(xì)節(jié)要查Tk文檔:
6.6. The canvas line object
In general, a line can consist of any number of segments connected end to end, and each segment can be straight or curved. To create a canvas line object on a canvas C, use:
id = C.create_line ( x0, y0, x1, y1, ..., xn, yn, option, ... )
The line goes through the series of points
(x0,
y0),
(x1,
y1),
…
(xn,
yn).
Options include:
arrow The default is for the line to have no arrowheads. Use
arrow=FIRST to get an arrowhead at the(x0,y0)end of the line. Use
arrow=LAST to get an arrowhead at the far end. Use
arrow=BOTH for arrowheads at both ends.
Python 函數(shù)參數(shù)有冒號 -?聲明
type hint, 即類型提示 。
官方網(wǎng)站:
def add(a,b) - int:
return a+b
函數(shù)可以不加-表示動態(tài)定義。a b?數(shù)據(jù)類型不一定為int,也可以為float
加-表示靜態(tài)定義。a b?數(shù)據(jù)類型為int