gpt4 book ai didi

python - 在 Python 中添加将字符串转换为小写的装饰器

转载 作者:行者123 更新时间:2023-11-28 22:53:21 25 4
gpt4 key购买 nike

所以我是学习装饰器的新手,我已经学习了无数教程,虽然我理解并且基本上可以遵循所有示例,但我认为最好的学习方法是自己实现一个装饰器。所以我将在下面使用这个例子。我意识到装饰器根本不需要这样做,但为了学习,我想添加一个装饰器来过滤字符串,如狗名和品种,并将它们变成小写。任何正确方向的想法或指示将不胜感激。

class Dogs:
totalDogs = 0
dogList=[]

def __init__(self, breed, color, age):
self.breed=breed
self.color=color
self.age=age
Dogs.dogList.append(self.breed)
Dogs.totalDogs += 1

def displayDogs(self):
print "breed: ", self.breed
print "color: ",self.color
print "age: ",self.age
print "list of breeds:", Dogs.dogList
print "total dogs: ", Dogs.totalDogs

def somedecorator(*args):
#now what

terrier=Dogs("TeRrIer", "white", 5)
terrier.displayDogs()
retriever=Dogs("goldenRETRIEVER", "brown", 10)
retriever.displayDogs()

最佳答案

装饰器实际上只是一个将一个函数作为参数并返回另一个函数的函数。

def lower_output(func):
def wrapper(*args, **kwargs):
return func(*args, **kwargs).lower()
return wrapper


class Dogs(object):
totalDogs = 0
dogList=[]

def __init__(self, breed, color, age):
self.breed=breed
self.color=color
self.age=age
Dogs.dogList.append(self.breed)
Dogs.totalDogs += 1

@lower_output
def get_breed(self):
return self.breed




>>> terrier=Dogs("TeRrIer", "white", 5)
>>> terrier.get_breed()
terrier

关于python - 在 Python 中添加将字符串转换为小写的装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19508365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com