i = 12
print(i) # 正常
# print(j) # NameError: name 'j' is not defined
不同於 BASIC 等弱類型語言,Python 變量必須先賦值才能使用。
i = 1
print(i, type(i), id(i))
i = 10000000000
print(i, type(i), id(i)) # 自動轉為 long
i = 1.1
print(i, type(i), id(i)) # float
本質:Python 變量是「名字標籤」,綁定到內存中的對象。id() 返回對象地址。賦值只是改變標籤指向,舊對象若無引用則被垃圾回收。這是動態語言典型特徵。
i = 10
j = 'ss'
# print(i + j) # TypeError: unsupported operand types for +: 'int' and 'str'
print(str(i) + j) # 正確:顯式轉換
弱類型語言(如 BASIC、JavaScript)會嘗試隱式轉換,Python 拒絕,保證類型安全。
dynamic 關鍵字即借鑑了此機制。理解這一機制有助於編寫健壯、可預測的 Python 代碼。