Go中的結構體

結構體是一種包含一個或多個變量的類型。它類似於一組變量,我們稱之為字段。這些字段可以具有不同的類型。 下面是一個結構體定義的示例: type Person struct { Name string Age int } 請注意,我們使用大寫字母命名字段,否則這些字段將對包私有。當您將結構體傳遞給其他包提供的函數(例如用於處理 JSON 或數據庫的函數)時,將無法訪問這些字段。 一旦我們定義了結構體,我們可以使用該類型初始化變量: flavio := Person{"Flavio", 39} 並且我們可以使用點語法訪問個別的字段: flavio.Age // 39 flavio.Name // "Flavio" 您還可以以以下方式從結構體初始化新變量: flavio := Person{Age: 39, Name: "Flavio"} 這使您只能初始化一個字段: flavio := Person{Age: 39} 或者甚至可以在不指定任何值的情況下初始化它: flavio := Person{} // 或者 var flavio Person 然後再設置其值: flavio.Name = "Flavio" flavio.Age = 39 結構體非常有用,因為您可以將不相關的數據進行分組,並將其傳遞給/從函數中,存儲在切片中等等。 定義後,結構體就像int或string一樣是一種類型,這意味著您還可以在其他結構體中使用它: type FullName struct { FirstName string LastName string } type Person struct { Name FullName Age int }

Python 內省

使用 內省(introspection) 可以分析函數、變量和物件。 首先,可以使用 help() 全域函數以文件字串(docstrings)的形式獲取文件。 然後,可以使用 print() 函數來獲取關於函數的資訊: def increment(n): return n + 1 print(increment) 或者物件的資訊: class Dog(): def bark(self): print('WOF!') roger = Dog() print(roger) type() 函數可以提供物件的類型: print(type(increment)) print(type(roger)) print(type(1)) print(type('test')) dir() 全域函數可以查找物件的所有方法和屬性: print(dir(roger)) id() 全域函數可以顯示任何物件在記憶體中的位置: print(id(roger)) # 140227518093024 print(id(1)) # 140227521172384 這可以用來檢查兩個變數是否指向同一個物件。 Python 的標準庫模組 inspect 提供了更多獲取物件資訊的工具,可以在這裡查看詳細內容:https://docs.python.org/3/library/inspect.html

如何在Python中檢查變量是否為數字

你可以使用type()函數來檢查變量是否為整數,將變量作為參數傳遞給該函數,然後將結果與int類進行比較: age = 1 type(age) == int #True 或者使用isinstance()函數,傳遞兩個參數:變量和int類: age = 1 isinstance(age, int) #True 你可以通過將變量與float進行比較,來檢查數字是否為浮點數: fraction = 0.1 type(fraction) == float #True