原始型別(Primitive Types)和引用型別(Reference Types) | Python

Python 中,變數的類型可以分為兩大類: 原始型別(Primitive Types)引用型別(Reference Types)

1. 原始型別(Primitive Types):

原始型別是指基本的數據類型,它們是不可變(immutable)的。這意味著一旦創建了一個原始型別的變數,就無法改變其內容,只能創建一個新的對象。

常見的原始型別包括:

  • 整數(int)
  • 浮點數(float)
  • 布林值(bool)
  • 字符串(str)
  • 元組(tuple)

對於原始型別,變數存儲的是實際的數據值,而不是對數據的引用。當你對原始型別的變數進行操作時,實際上是在創建新的對象。

# 原始型別示例
num = 42  # 整數
pi = 3.14  # 浮點數
is_true = True  # 布林值
name = "John"  # 字符串
coordinates = (10, 20)  # 元組

2. 引用型別(Reference Types):

引用型別是指對象的引用,這些對象可以包含多個值,並且它們是可變(mutable)的。引用型別的變數實際上存儲的是對對象的引用,而不是對象本身。

常見的引用型別包括:

  • 列表(list)
  • 字典(dict)
  • 集合(set)
  • 類(class)

對於引用型別,變數存儲的是對對象的引用,當你對引用型別的變數進行操作時,你實際上是在修改這個對象。
對於引用對象實務上操作細節差異,可以看我 == 和 is 的差別 這篇文章的介紹,在實際的開發上,了解原始類型跟引用類型,可以避免許多不必要的bug出現

# 引用型別示例
my_list = [1, 2, 3]  # 列表
my_dict = {'key': 'value'}  # 字典
my_set = {1, 2, 3}  # 集合

總結:

  • 原始型別是不可變的,存儲實際數據值,操作變數會生成新的對象。
  • 引用型別是可變的,存儲對對象的引用,操作變數會修改對象本身。 理解這兩者之間的區別有助於更好地處理變數的行為,特別是在涉及到對象的修改和比較時。