que*_*ons 6 python conventions python-2.7 python-3.x
我是一个python初学者,并且想知道什么是pythonic方式来编写实用程序函数?与在Java/C++中一样,创建一个实用程序类并在其中包含方法或在模块内部编写函数?该函数用于同一模块中的各个类.
模块中不同类和函数使用的变量的相同问题.我可以将它们放在实用程序类中,或者在模块内部定义它们.什么是pythonic?有人请指导我.
我支持在类中编写它们的唯一论点是它使它更具有针对性.
欢迎使用Python!你离C++和Java还有很长的路要走,这是一件好事.;)
这是从一个摘录于面向对象编程优良话语由另一StackOverflow的志愿者:
快速:把你的头顶,什么是面向对象编程有关?
...
如果您认为任何单词"封装","继承","多态","信息隐藏","抽象"或"vtable",那你就错了.
如果你认为任何单词"class","prototype"或"type",你仍然是错的.
面向对象的编程是关于对象的:状态和行为的捆绑.
我为什么要引用这个?(好吧,对于其中一个,它是Pythonic喜欢富有表现力的讽刺,你可以得到消息.)因为其中有你的问题的答案.
您的"实用程序函数"是否实际上表示某些行为可以很好地表达(关键字)作为继承层次结构中的父对象?然后,无论如何,把它放在一个班级.但是,如果这意味着创建一个类只是为了把它放进去.
你总是参与面向对象编程当你编写Python,因为一切都在Python是一个对象.(考虑到你甚至可以在文字上调用方法,例如,'hello'.upper().)如果你以某种方式眯着眼睛,你甚至可以认为你的模块只是作为类定义的内部.它们有自己的范围,可能是模块级函数(模块"方法",如果你遵循我的类比),可能还有内部类.行为非常相似,因为它基本上是相同的界面.
我建议您查看site-packages所有可用模块和软件包的目录.你会得到一些非常好的想法如何正常完成,你可能会看到几十个模块级函数的例子,当你说"效用函数"时,这些函数或多或少都是你所指的.