当前位置:首页>python>从零开始学python-可变和不可变类型对比

从零开始学python-可变和不可变类型对比

  • 2026-08-27 06:51:13
从零开始学python-可变和不可变类型对比

Hi~新朋友,记得点上面蓝字(网虫root)关注哟~

前言:

   主要分享的是Python版本为Python3的内容。

💡1. 可变 vs 不可变类型

# 不可变类型示例a = "hello"b = a  # b和a指向同一对象a = a + " world"  # 创建新对象print(b)  # "hello" - b不变# 可变类型示例lst1 = [1, 2, 3]lst2 = lst1  # lst2和lst1指向同一对象lst1.append(4)print(lst2)  # [1, 2, 3, 4] - lst2也改变

📊2. 类型检查

可以使用type() 或 isinstance()函数

x = 10print(type(x))          # <class 'int'>print(isinstance(x, int))  # Trueprint(isinstance(x, (int, float)))  # True

type()函数:

语法:

# 获取对象类型type(object)
参数:
  • object: 要检查类型的对象

作用:

  • 返回对象的确切类型(类)
  • 严格匹配,不考虑继承关系
  • 例如:type(obj) == int 会检查obj是否是int类型,而不是其子类
示例:
# 获取对象类型x = 5print(type(x))  # <class 'int'># 检查类型if type(x) == int:    print("x是整数")# 动态创建类MyClass = type("MyClass", (), {})print(type(MyClass))  # <class 'type'>

isinstance()函数:

语法:

isinstance(object, classinfo)
参数:
  • object
    : 要检查的对象
  • classinfo
    : 类的信息,可以是单一类型或包含多个类型的元组

作用:

  • 检查对象是否是某个类或其子类的实例
  • 考虑继承关系,更灵活
  • 可检查多个类型(通过元组)
  • 例如:isinstance(obj, int) 会检查obj是否是int或其子类示例:
class Animal: passclass Dog(Animal): passdog = Dog()print(isinstance(dog, Dog))  # Trueprint(isinstance(dog, Animal))  # Trueprint(isinstance(dog, (Animal, str)))  # True# 检查多种类型value = 3.14print(isinstance(value, (int, float)))  # True

两者区别:

【微语】成长会让人明白,唯一后悔的只是那些自己不曾尝试的事。

网虫root

期待你的

分享

点赞

在看

最新文章

随机文章