gpt4 book ai didi

Pythonic API 设计

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:22 25 4
gpt4 key购买 nike

<分区>

我的目标是设计一个允许客户执行以下操作的 Python API:

md = MentalDisorders()
print(md.disorders['eating'])

获取与饮食相关的失调列表。

这是我的尝试,考虑到 FAKE_DATABASE 将是一个真实的数据库,我只是将这个问题集中在界面的“感觉”/“可用性”上,尤其是在我不熟悉的 Python 上下文中:

#!/usr/bin/env python2.7

FAKE_DATABASE = {
'anxiety': ['phobia', 'panic'],
'personality': ['borderline', 'histrionic'],
'eating': ['bulimia', 'anorexia'],
}

class MentalDisorders(object):
# ... some methods and fields that make it worthwhile having a container class ...
class DisorderCollection(object):
def __getitem__(self, key):
if key in FAKE_DATABASE:
return FAKE_DATABASE[key]
else:
raise KeyError('Key not found: {}.'.format(key))
def __init__(self):
self.disorders = self.DisorderCollection()

def main():
md = MentalDisorders()
print(md.disorders['anxiety'])
print(md.disorders['personality'])
print(md.disorders['eating'])
try:
print(md.disorders['conduct'])
except KeyError as exception:
print(exception)

if __name__ == '__main__':
main()
  1. 是否建议使用 DisorderCollection
  2. DisorderCollection 应该在 MentalDisorders 中定义还是在其外部定义?
  3. 通过 self.DisorderCollection 实例化 self.disorders 是否正确?
  4. DisorderCollection 的实例化是否应该用作字段发生在在 MentalDisorders__init__ 方法中?
  5. 是否应该根本不存在 DisorderCollection 的字段实例以及以上实现为从 __getattribute__ 到 key 的简单“转发调用”在数据库中查找?什么是简单的 md.disorders(没有指定键)在那种情况下返回?

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