在Python中,我們可以在函數之外聲明任何變量。我們可以簡單地調用在函數外部設置golang中的常量,如何在Python中完成
a = 'a string'
或b = ['asd', 'sdf', 'dfg']
我學習golang,很想做同樣簡單地創建一個變量,並賦值給它。
我必須在func裏面做嗎?它必須在func主要?
到目前爲止,我
func main() {
var A_LIST []string
A_LIST = append(A_LIST, "str1", "str2")
var B_LIST []string
B_LIST = append(B_LIST, "str3", "str4")
}
可以建立,我可以打印出兩個變量如果我寫一個fmt.Println
,但如果我想建立成一個.so文件會這樣我的Python腳本可以導入它,這是正確的事情嗎?
EDIT(UPDATE):下面的建議,寫了一些代碼來解釋我打算做
我想有幾個列表進行分類我的標籤。在Python中,它看起來像:
tag_category1 = ['tag1', 'tag2', 'tag3']
tag_category2 = ['tag4', 'tag5', 'tag6']
該函數將採用標記列表並對它們進行分類。
tags = ['tag1', 'tag3', 'tag6', 'tag7']
new_tags = {}
for tag in tags:
if tag in tag_category1:
new_tag['category1'].append(tag)
elif tag in tag_category2:
new_tag['category2'].append(tag)
else:
new_tag['others'].append(tag)
return new_tags
所以結果應該是
new_tags = {
'category1': ['tag1', 'tag3'],
'category2': ['tag6'],
'others':['tag7']
}
我想要寫去這個功能,因爲這個功能在另一個python腳本最初使用,我希望能夠將其導入。對於那個python腳本,我仍然有問題找到我使用的一些util庫,所以我必須繼續使用python。
[閱讀關於'init()'函數](https://golang.org/doc/effective_go.html#init)。我並沒有在Go程序之外使用Go編碼的庫,所以我不能說它是否會起作用,但在Go代碼中看到這些函數並不罕見。 –