在Python中,`type()`是一个内置函数,用于获取一个对象的类型信息,或者动态创建类。以下是`type()`函数的基本用法和动态创建类的示例:
获取对象类型
使用`type()`函数可以获取一个对象的类型信息。例如:
```python
x = 5
print(type(x)) 输出:
y = "hello"
print(type(y)) 输出: ``` 动态创建类 `type()`函数也可以用来动态创建类。其语法如下: ```python type(class_name, bases, dict) ``` `class_name`:类的名称。 `bases`:一个元组,包含类的父类(如果没有继承任何父类,则为一个空元组)。 `dict`:类的属性和方法(字典形式)。 ```python 动态创建一个表示“人”的类 Person = type('Person', (object,), { 'name': '', 'age': 0, 'greet': lambda self: f"Hello, my name is {self.name} and I am {self.age} years old." }) 创建类的实例 person1 = Person() person1.name = "Alice" person1.age = 30 调用 greet 方法 print(person1.greet()) 输出: Hello, my name is Alice and I am 30 years old. ``` 自定义元类 你还可以通过继承`type`来创建自定义元类,从而在创建类时添加一些额外的功能。例如: ```python class LogMeta(type): def __new__(cls, name, bases, attrs): 给所有方法加上日志 for key, value in attrs.items(): if callable(value): attrs[key] = lambda *args, kwargs: print(f"调用方法: {key}") or value(*args, kwargs) return super().__new__(cls, name, bases, attrs) class Person(metaclass=LogMeta): def __init__(self, name): self.name = name def say_hi(self): print("哈喽!") 创建类的实例 p = Person("Alice") p.say_hi() 输出: 调用方法: say_hi 哈喽! ``` 通过这些示例,你可以看到`type()`函数在Python中不仅可以用来获取对象的类型,还可以用来动态创建类和自定义元类,非常强大。