gpt4 book ai didi

package - Pythonic : code name conflicting with built-in

转载 作者:太空狗 更新时间:2023-10-30 01:47:03 25 4
gpt4 key购买 nike

我目前正在创建一个名为“SET”的代码。代码的名称是首字母缩写词,出于许多(非编程)原因已定义,因此无法更改。

问题:最简单,而且我相信最终用户使用我的代码的不那么痛苦的方法是将包命名为“set”。但这当然是一个问题,因为这与内置的 set 函数冲突。

问题:有哪些可能的解决方案?有些可能是(可能还有更多):

  1. 更改包名称(例如 setb)。

    import setb

    我真的很不想,因为那样就和真名不一样了

  2. 将包名设为大写 ​​(SET)

    import SET

    这将是一个直接的解决方案,但我想知道:这是一个包的 pythonic 正确命名吗?另外,我觉得这有点痛苦,因为代码中定义的所有模块都会有类似“import SET.x.y...”的东西(即大写,写了很多次)。但如果这是一种 pythonic 方式,这并不是什么大问题。

  3. 保留名字“set”

    import set

    嗯,这显然不行。但只有当用户使用“导入集”时才会出现问题,不是吗?这不应该在“正常使用条件”下发生,因为代码将提供一些脚本来使用它,而不是将它用作标准 python 模块。但我们永远不知道,它可能会原样导入,甚至可能存在一些我没有看到的问题(使用内置集)。

我正在考虑解决方案 2.,但我真的不确定。也许这不合适,或者你们有更好的解决方案。

PS:我在网上和 stackoverflow 上发现了一些类似的主题,但它通常处理脚本中的名称或包中的模块。这里的问题实际上与代码的名称有关(只有这样写才有意义),因此与包名称的正确命名有关。


编辑

选定的解决方案:我选择使用“SET”作为包名。尽管这里提出了很多好的建议:pyset、semt、setool……或者更明确的“starexoplanettool”(明确首字母缩写词)。谢谢大家。

编辑#2

我喜欢有一个名为 S 的包和一个名为 E 的子包的“有趣”解决方案......最终得到:

    import S.E.T

谢谢唐问题。

最佳答案

为什么不说出首字母缩略词背后的含义,如果用户迫切需要更短的名称,他们可以import someetymologyterm as SET 或任何他们喜欢的名称。 Python 为他们提供了选择,因此无论哪种方式都不是世界末日。

关于package - Pythonic : code name conflicting with built-in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9387119/

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