# 不可变类型示例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(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(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