有一个录入人姓名(英文)的函数,为其添加装饰器,确保录入后的人姓名都是大写开头。
时间: 2024-03-23 18:38:00 浏览: 214
javascript中用星号表示预录入内容的实现代码
好的,这里是一个 Python 代码示例,用于定义一个装饰器,确保录入的人名都是大写开头:
```python
def uppercase_name(func):
def wrapper(*args, **kwargs):
name = func(*args, **kwargs)
return name.capitalize()
return wrapper
@uppercase_name
def input_name():
name = input("请输入人名:")
return name
```
这里定义了一个名为 `uppercase_name` 的装饰器,它实际上是一个闭包函数,接受一个函数对象 `func` 作为参数。在闭包函数内部,定义了一个名为 `wrapper` 的函数,它接受任意参数,并在调用原始函数 `func` 之前,将录入的人名转换为大写开头的形式,然后再返回给调用者。
在装饰器定义完成后,我们使用 `@uppercase_name` 语法将 `input_name` 函数进行装饰,这样,每次调用 `input_name` 函数录入人名时,都会自动应用上述装饰器,确保录入的人名都是大写开头的形式。
阅读全文