gpt4 book ai didi

python - 描述符的方法

转载 作者:可可西里 更新时间:2023-11-01 11:43:04 34 4
gpt4 key购买 nike

我正在尝试围绕一个做一些簿记的 redis 数据库实现一个包装器,我考虑过使用描述符。我有一个带有一堆字段的对象:帧、失败等,我需要能够获取设置,并根据需要增加字段。我试图实现一个类似 Int 的描述符:

class IntType(object):
def __get__(self,instance,owner):
# issue a GET database command
return db.get(my_val)

def __set__(self,instance,val):
# issue a SET database command
db.set(instance.name,val)

def increment(self,instance,count):
# issue an INCRBY database command
db.hincrby(instance.name,count)

class Stream:
_prefix = 'stream'
frames = IntType()
failures = IntType()
uuid = StringType()

s = Stream()

s.frames.increment(1) # float' object has no attribute 'increment'

似乎我无法访问描述符中的 increment() 方法。我不能在 __get__ 返回的对象中定义增量。如果我只想增加,这将需要一个额外的数据库查询!我也不希望在 Stream 类上使用 increment() ,因为稍后当我想在 Stream 中添加其他字段(如字符串或集合)时,我需要对所有内容进行类型检查。

最佳答案

这个有用吗?

class Stream:
_prefix = 'stream'

def __init__(self):
self.frames = IntType()
self.failures = IntType()
self.uuid = StringType()

关于python - 描述符的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20571533/

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