所有 Bazel 檔案都提供的方法,包括 .bzl 檔案、BUILD、MODULE.bazel 和 WORKSPACE。
成員
- 絕對
- 全部
- 任何
- 布林值
- 語音輸入
- dir
- 列舉
- 失敗
- 浮點值
- getattr
- hasattr
- 雜湊
- 整數
- 智慧鏡頭
- 清單
- 上限
- 分鐘
- 列印
- 範圍
- 成效增幅
- 反過來
- 已排序
- str
- 元組
- 類型
- 郵遞區號
腹部
unknown abs(x)傳回指定數字的絕對值 (規模相同的非負數)。
abs(-2.3) == 2.3
參數
參數 | 說明 |
---|---|
x
|
int;或 float;
必要 數字 (int 或 float) |
全部
bool all(elements)如果所有元素評估為 True 或集合為空白,則傳回 true。系統會透過 bool 函式將元素轉換為布林值。
all(["hello", 3, True]) == True all([-1, 0, 1]) == False
參數
參數 | 說明 |
---|---|
elements
|
必要 字串或元素集合。 |
不限
bool any(elements)如果至少有一個元素評估為 True,則傳回 true。系統會透過 bool 函式將元素轉換為布林值。
any([-1, 0, 1]) == True any([False, 0, ""]) == False
參數
參數 | 說明 |
---|---|
elements
|
必要 字串或元素集合。 |
bool
bool bool(x=False)布林值類型的建構函式。如果物件是
None
、False
、空白字串 (""
)、數字 0
或空白集合 (例如 ()
、[]
),就會傳回 False
。如果沒有,則會傳回 True
。
參數
參數 | 說明 |
---|---|
x
|
預設值為 False 要轉換的變數。 |
語音輸入
dict dict(pairs=[], **kwargs)根據選用的位置引數和一組選用的關鍵字引數,建立字典。如果有多個同一個鍵,系統會採用最後一個值。凡是透過位置引數提供的項目,由關鍵字引數提供的項目都會視為來自。
參數
參數 | 說明 |
---|---|
pairs
|
預設值為 [] dict 或可疊代且元素每個長度為 2 (鍵、值) 的元素。 |
kwargs
|
必要 其他項目的字典。 |
dir
list dir(x)會傳回字串清單:參數物件的屬性名稱和方法。
參數
參數 | 說明 |
---|---|
x
|
必要 要檢查的物件。 |
列舉
list enumerate(list, start=0)傳回一組配對 (兩個元素元組),含索引 (int) 和輸入序列中的項目。
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]
參數
參數 | 說明 |
---|---|
list
|
必要 輸入序列 |
start
|
預設值為 0 起始索引。 |
失敗
None
fail(msg=None, attr=None, *args)
導致執行作業失敗並發生錯誤。
參數
參數 | 說明 |
---|---|
msg
|
預設值為 None 已淘汰:改用位置引數。此引數就像隱含的位置引數。 |
attr
|
string;或 None ;
預設值為 None 已淘汰。使用包含這個字串的選用前置字元,加入錯誤訊息中。 |
args
|
必要 顯示在錯誤訊息中的值清單,採用 debugPrint (預設等同於 str ) 格式並以空格彙整。 |
float
float float(x=unbound)以浮點值傳回 x。
- 如果
x
已經是浮點值,float
會傳回不變。 - 如果
x
是布林值,float
會傳回 1.0 代表 True,然後傳回 0.0 代表 False。 - 如果
x
是 int,float
會傳回最接近 x 的有限浮點值;如果規模過大,就會傳回錯誤。 - 如果
x
是字串,則必須是有效的浮點常值,或與NaN
、Inf
或Infinity
相同 (忽略大小寫) 至NaN
、Inf
或Infinity
,也可選擇在前面加上+
或-
符號。
float()
會傳回 0.0。
參數
參數 | 說明 |
---|---|
x
|
預設值為 unbound 要轉換的值。 |
getattr
unknown getattr(x, name, default=unbound)傳回指定名稱的結構體欄位 (如有)。如果不是,則會傳回
default
(如有指定) 或引發錯誤。getattr(x, "foobar")
相當於 x.foobar
。getattr(ctx.attr, "myattr") getattr(ctx.attr, "myattr", "mydefault")
參數
參數 | 說明 |
---|---|
x
|
必要 存取其屬性的結構。 |
name
|
必要 結構體屬性的名稱。 |
default
|
預設值為 unbound 結構體沒有指定名稱的屬性時,要傳回的預設值。 |
hasattr
bool hasattr(x, name)如果物件
x
具有指定 name
的屬性或方法,則傳回 True,否則傳回 False。範例:hasattr(ctx.attr, "myattr")
參數
參數 | 說明 |
---|---|
x
|
必要 要檢查的物件。 |
name
|
必要 屬性的名稱。 |
hash
int hash(value)傳回字串的雜湊值。判定方法是使用與 Java 的
String.hashCode()
相同的演算法,也就是: s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]目前不支援在字串之外對值進行雜湊處理。
參數
參數 | 說明 |
---|---|
value
|
必要 要雜湊的字串值。 |
int
int int(x, base=unbound)傳回 x 做為 int 值。
- 如果
x
已經是 int,int
會傳回不變。 - 如果
x
是布林值,int
會傳回 1 代表 True,然後傳回 0 代表 False。 - 如果
x
是字串,則必須採用<sign><prefix><digits>
格式。<sign>
為"+"
、"-"
或空白 (解釋為正數)。<digits>
是介於 0 到base
到 1 之間的一串數字,其中字母 a-z (或相等的 A-Z) 會用做 10 到 35 的數字。在base
為 2/8/16 的情況下,<prefix>
為選用項目,可能分別為 0b/0o/0x (或同等的值為 0B/0O/0X)。如果base
是這些底數以外的其他值或特殊值 0,則前置碼必須留空。在base
為 0 的情況下,如果使用任何前置字元,系統會將字串解讀為整數常值。在此情況下,系統會選擇 2/8/10/16 其中一個底數 (如有使用任何前置字元)。如果base
為 0,則不使用前置字元,且有超過一個數字,開頭的數字不得為 0;以免八進位和小數混淆字串所代表的數字大小必須落在 int 類型的允許範圍內。 - 如果
x
是浮點值,int
會傳回浮點值的整數值,四捨五入為零。如果 x 並非有限 (NaN 或無限大),就會發生錯誤。
x
是任何其他類型,或值是不符合上述格式的字串,這個函式就會失敗。與 Python 的 int
函式不同,這個函式不允許零引數,且不允許字串引數使用多餘的空白字元。範例:
int("123") == 123 int("-123") == -123 int("+123") == 123 int("FF", 16) == 255 int("0xFF", 16) == 255 int("10", 0) == 10 int("-0x10", 0) == -16 int("-0x10", 0) == -16 int("123.456") == 123
參數
參數 | 說明 |
---|---|
x
|
必要 要轉換的字串。 |
base
|
預設值為 unbound 用來解譯字串值的基數;預設值為 10。必須介於 2 至 36 (含) 之間,或是 0 用於偵測底數,就像 x 是整數常值。如果值不是字串,就不能提供此參數。
|
len
int len(x)傳回字串、序列 (例如清單或元組)、dict 或其他可疊代項目的長度。
參數
參數 | 說明 |
---|---|
x
|
必要 要回報長度的值。 |
list
list list(x=[])傳回所含元素與指定的可疊代值相同的新清單。
list([1, 2]) == [1, 2] list((2, 3, 2)) == [2, 3, 2] list({5: "a", 2: "b", 4: "c"}) == [5, 2, 4]
參數
參數 | 說明 |
---|---|
x
|
預設值為 [] 要轉換的物件。 |
最高
unknown max(*args)傳回所有指定引數中最大的一個。如果只提供一個引數,就必須是不可空白的可疊代項目。如果元素無法比較 (例如 int 字串),或沒有指定引數,就會發生錯誤。
max(2, 5, 4) == 5 max([5, 6, 3]) == 6
參數
參數 | 說明 |
---|---|
args
|
必要 要檢查的元素。 |
分鐘
unknown min(*args)傳回所有指定引數中的最小一個。如果只提供一個引數,其必須為不可空白的可疊代項目。如果元素無法比較 (例如 int 與字串),或未設定引數時就會發生錯誤。
min(2, 5, 4) == 2 min([5, 6, 3]) == 3
參數
參數 | 說明 |
---|---|
args
|
必要 要檢查的元素。 |
列印
None
print(sep=" ", *args)
將 args
列印為偵錯輸出內容。並在前面加上 "DEBUG"
字串和這個呼叫的位置 (檔案和行號)。未指定引數轉換為字串的確切方式,而且可能隨時變更。具體來說,該記錄可能會與 str()
和 repr()
的格式設定不同,甚至更加詳細。我們不建議在正式版程式碼中使用 print
,因為該程式碼會向使用者顯示垃圾內容。如要淘汰,請盡可能使用 fail()
處理重大錯誤。
參數
參數 | 說明 |
---|---|
sep
|
預設值為 " " 物件之間的分隔符字串,預設值為空格 (「 」)。 |
args
|
必要 要列印的物件。 |
範圍
sequence range(start_or_stop, stop_or_none=None, step=1)建立清單,其中項目從
start
到 stop
,並以 step
為單位遞增。如果提供單一引數,項目的範圍從 0 到該元素。range(4) == [0, 1, 2, 3] range(3, 9, 2) == [3, 5, 7] range(3, 0, -1) == [3, 2, 1]
參數
參數 | 說明 |
---|---|
start_or_stop
|
必要 如果提供停止,起始元素的值,否則為停靠站,實際開始值則為 0 |
stop_or_none
|
int;或 None ;
預設值為 None 「不」包含在結果清單中的第一個項目選用索引;並在到達 stop 前停止。
|
step
|
預設值為 1 遞增 (預設值為 1)。但可能是負值。 |
Repr
string repr(x)將任何物件轉換為字串表示。很適合用於偵錯。
repr("ab") == '"ab"'
參數
參數 | 說明 |
---|---|
x
|
必要 要轉換的物件。 |
已撤銷
list reversed(sequence)傳回新的未凍結清單,其中包含原始可疊代序列的元素 (以反向順序排列)。
reversed([3, 5, 4]) == [4, 5, 3]
參數
參數 | 說明 |
---|---|
sequence
|
必要 要反轉的可疊代序列 (例如清單)。 |
sorted
list sorted(iterable, *, key=None, reverse=False)傳回新的排序清單,其中包含提供的可疊代序列的所有元素。如果任何元素 x、y 不能用 x < 進行比較,可能會發生錯誤Y 鍵。除非反向引數為 True,否則元素會按遞增順序排序,在這種情況下,會由遞減順序排列。 排序功能穩定:所比較的元素會保持原始相對順序。
sorted([3, 5, 4]) == [3, 4, 5]
參數
參數 | 說明 |
---|---|
iterable
|
必要 要排序的可疊代序列。 |
key
|
預設值為 None 在比較前套用至每個元素的選用函式。 |
reverse
|
預設值為 False 依遞減順序傳回結果。 |
str
string str(x)將任何物件轉換成字串。很適合用於偵錯。
str("ab") == "ab" str(8) == "8"
參數
參數 | 說明 |
---|---|
x
|
必要 要轉換的物件。 |
元組
tuple tuple(x=())傳回元素與指定的可疊代值具有相同元素的元組。
tuple([1, 2]) == (1, 2) tuple((2, 3, 2)) == (2, 3, 2) tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)
參數
參數 | 說明 |
---|---|
x
|
預設值為 () 要轉換的物件。 |
類型
string type(x)傳回其引數的類型名稱。很適合用於偵錯和類型檢查。例如:
type(2) == "int" type([1]) == "list" type(struct(a = 2)) == "struct"這個函式日後可能會變更。如要編寫與 Python 相容的程式碼,並確保程式碼能因應未來趨勢,請只用來比較回傳值:
if type(x) == type([]): # if x is a list
參數
參數 | 說明 |
---|---|
x
|
必要 要檢查類型的物件。 |
zip
list zip(*args)傳回
tuple
的 list
,其中 i-th tuple 包含每個引數序列或可疊代項目中的 i-th 元素。這個清單具有最短的輸入值。只要使用一個可疊代引數,就會傳回 1 個元組的清單。如果不使用引數,就會傳回空白清單。範例:zip() # == [] zip([1, 2]) # == [(1,), (2,)] zip([1, 2], [3, 4]) # == [(1, 3), (2, 4)] zip([1, 2], [3, 4, 5]) # == [(1, 3), (2, 4)]
參數
參數 | 說明 |
---|---|
args
|
必要 將清單轉換為 ZIP 檔案 |