在 Python 中,type() 是一个内置函数,有两种主要用途:
- 返回对象的类型 (最常用)
- 动态创建新的类 (元类用法)
1. 获取对象类型
当你向 type() 传递一个参数时,它会返回该参数的数据类型(即对象所属的类)。
语法
python
type(object)
示例
python
print(type(123)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("hello")) # <class 'str'>
print(type([1, 2, 3])) # <class 'list'>
print(type((1, 2))) # <class 'tuple'>
print(type({'a': 1})) # <class 'dict'>
print(type(True)) # <class 'bool'>
print(type(None)) # <class 'NoneType'>
# 自定义类的对象
class MyClass:
pass
obj = MyClass()
print(type(obj)) # <class '__main__.MyClass'>
2. 动态创建类(元类用法)
当 type() 被传入三个参数时,它会动态地创建一个新的类。这相当于使用 class 语句,但允许在运行时生成类。
语法
python
type(name, bases, dict)
- name:新类的名称(字符串)。
- bases:一个元组,包含新类继承的基类。
- dict:一个字典,包含新类的属性和方法(名称映射到实现)。
示例
python
# 定义一个类,等价于:
# class MyClass:
# x = 5
# def show(self):
# print(self.x)
MyClass = type('MyClass', (), {'x': 5, 'show': lambda self: print(self.x)})
obj = MyClass()
print(obj.x) # 5
obj.show() # 5