gpt4 book ai didi

python - 如何在python 3中正确使用@property装饰器?

转载 作者:行者123 更新时间:2023-12-01 05:03:49 27 4
gpt4 key购买 nike

我在 athleteModel.py 脚本中用 @property 注释了方法:

@property
def get_from_store():
with open(athleteFilePath,'rb') as pickleFile:
athleteMap = pickle.load(pickleFile)
print('Loaded athleteMap ',athleteMap)
return athleteMap

我在另一个脚本中使用此方法:

from athleteModel import get_from_store

athletes = get_from_store
print(yate.u_list(athletes[athName].sortedTimes))

在最后一行(print 方法)我得到异常:

TypeError: 'function' object is not subscriptable 
args = ("'function' object is not subscriptable",)
with_traceback = <built-in method with_traceback of TypeError object>

我的代码有什么问题?

最佳答案

@property 仅适用于方法,不适用于函数。

get_from_store 不是一个方法,它是一个函数。 property 对象充当 descriptor object描述符只能在类和实例的上下文中工作。

就您而言,确实没有必要将 get_from_store 设置为属性。删除 @property 装饰器并像函数一样使用它:

athletes = get_from_store()

否则您无法使顶级函数充当属性。

关于python - 如何在python 3中正确使用@property装饰器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25462576/

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