Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 导入和名称绑定最佳实践_Python_Class_Import_Module - Fatal编程技术网

Python 导入和名称绑定最佳实践

Python 导入和名称绑定最佳实践,python,class,import,module,Python,Class,Import,Module,这与:,密切相关,但下面的案例并未详细讨论 如果我们有一个模块coordinates,它定义了一个类coordinates和几个实用函数来处理coordinates类型。以下两件事的推荐方法是什么: 导入完整的坐标模块 将坐标绑定到坐标。坐标 我现在看到的两个选择: 导入坐标 从坐标导入坐标 但这似乎有点奇怪,另一方面,我看到的另一种解决方案似乎也不是很干净: 导入坐标 坐标=坐标。坐标 这两种方法中,哪一种是最常用或首选的方法?或者这两种方法都不应该使用,在这种情况下,什么是更好的解决方案

这与:,密切相关,但下面的案例并未详细讨论

如果我们有一个模块
coordinates
,它定义了一个类
coordinates
和几个实用函数来处理
coordinates
类型。以下两件事的推荐方法是什么:

  • 导入完整的
    坐标
    模块
  • 坐标
    绑定到
    坐标。坐标
  • 我现在看到的两个选择:

    导入坐标
    从坐标导入坐标
    
    但这似乎有点奇怪,另一方面,我看到的另一种解决方案似乎也不是很干净:

    导入坐标
    坐标=坐标。坐标
    
    这两种方法中,哪一种是最常用或首选的方法?或者这两种方法都不应该使用,在这种情况下,什么是更好的解决方案

    我正在考虑但我更愿意避免的另一个选择是在参考问题中提出的:
    将坐标导入为crd
    ,然后简单地使用
    crd.coordinates
    而不是
    坐标
    。我之所以要避免这种情况,是因为它会降低代码的可读性,特别是当我使用
    坐标
    模块中的函数时。对于这个替代方案,我可能更愿意简单地调用
    coordinates.coordinates
    ,即使这看起来是多余的


    我也考虑过让
    coordinates()
    自动调用
    coordinates()
    ,但我也不确定这是否是一个好的解决方案(我也不确定在这种情况下如何处理文档)

    这是个人喜好的问题,但对我自己来说,我会选择:

    from coordinates import Coordinates
    
    除非,也就是说,您从
    坐标
    模块中使用了三到四个以上的东西,或者您从中导入的一个名称与您从其他地方使用的名称发生冲突。在上述任何一种情况下,请选择

    import coordinates
    

    您不想从坐标导入中执行
    *
    ?至于你的问题,我会选择第一个选项。。。这对其他开发人员来说更有意义,
    从不
    进行星型导入,除非您知道自己在做什么不,当然我不希望这样,我的linter不会真的喜欢它:p我使用的
    坐标
    中的函数数(在某些情况下)大于4。在这些情况下,我真的不想从坐标中调用
    导入坐标、foo、bar、baz等
    。我还希望在项目中导入模块/类的方式上保持一致(再次强调,除非我没有其他可行的替代方案)。正如我所说,这是个人偏好的问题。