python使用type实现工厂模式
时间: 2024-01-31 07:02:10 浏览: 31
工厂模式是一种常见的设计模式,它主要用于根据不同的输入参数创建不同的对象。在 Python 中,我们可以使用 type 函数来实现工厂模式。
下面是一个示例代码,实现了一个简单的工厂模式:
```python
class Dog:
def __init__(self, name):
self.name = name
def speak(self):
return "Woof!"
class Cat:
def __init__(self, name):
self.name = name
def speak(self):
return "Meow!"
def get_pet(pet="dog"):
pets = dict(dog=Dog("Hope"), cat=Cat("Peace"))
return pets[pet]
d = get_pet("dog")
print(d.speak())
c = get_pet("cat")
print(c.speak())
```
在上面的代码中,我们定义了两个类 `Dog` 和 `Cat`,它们都有一个 `speak` 方法。然后我们定义了 `get_pet` 函数,它接受一个参数 `pet`,默认为 `dog`。根据 `pet` 的不同值,我们使用字典返回不同的对象。
我们可以看到,在 `get_pet` 函数中,我们使用了 `dict` 函数创建了一个字典,其中包含了 `Dog` 和 `Cat` 对象。然后我们根据传入的参数 `pet`,返回对应的对象。
最后,我们通过调用 `get_pet` 函数获取了不同的宠物对象,并调用它们的 `speak` 方法,输出相应的声音。