Pythonic方式:类或模块中的实用程序功能

时间:2014-04-12 03:16:39

标签: python python-2.7 python-3.x conventions

我是一个python初学者,并且想知道什么是pythonic方式来编写实用程序函数?与在Java / C ++中一样,创建一个实用程序类并在其中包含方法或在模块内部编写函数?该函数用于同一模块中的各个类。

模块中不同类和函数使用的变量的相同问题。我可以将它们放在实用程序类中,或者在模块内部定义它们。什么是pythonic?有人请指导我。

我赞成在课堂上写它们的唯一论点是它使它更加面向对象。

1 个答案:

答案 0 :(得分:8)

欢迎使用Python!你离C ++和Java很远,这是一件好事。 ;)

这是摘自excellent discourse on object-oriented programming another StackOverflow volunteer

  

快速:脱离头顶,什么是面向对象的编程关于

     

...

     

如果您认为“封装”,“继承”,“多态”,“信息隐藏”,“抽象”或“vtable”等词语,则错误

     

如果您认为任何单词“class”,“prototype”或“type”,那么仍然是错误的

     

面向对象的编程是关于对象:状态和行为的捆绑。

为什么我引用这个? (好吧,对于一个人来说,它是Pythonic喜欢富有表现力的讽刺,你可以得到消息。)因为这就是你问题的答案。

您的"实用程序是否正常运行"实际上表示一些行为可以表达为很好(关键字)作为继承层次结构中的父对象?然后,无论如何,把它放在一个班级。但是,如果这意味着创建一个类只是为了把它放进去。

当您编写Python时, 总是参与面向对象的编程,因为 Python中的所有内容都是对象。 (考虑到你甚至可以在文字上调用方法,例如'hello'.upper()。)如果你以某种方式眯着眼睛,你甚至可以认为你的模块只是作为类定义的内部。它们有自己的范围,可能是模块级功能(模块"方法"如果你按照我的比喻),可能还有内部类。行为非常相似,因为它基本上是相同的界面。

我建议您查看所有可用模块和软件包的site-packages目录。你会得到一些非常好的想法,通常如何做到这一点,你可能会看到几十个模块级函数的例子,当你说&#时,你或多或少都会引用它们。 34;效用函数"。