Questions tagged «python»

Python是一种动态类型化的高级解释型编程语言。它的设计侧重于清晰的语法,一种面向对象编程的直观方法,以及使正确的做事方式变得显而易见的方法。Python支持模块和异常,并具有广泛的标准模块库。Python是通用的,因此从Web到嵌入式系统都得到了广泛的使用。

2
基于密钥的缓存如何工作?
我最近在37Signals博客上阅读了一篇文章,但我不知道他们如何获取缓存密钥。 具有包含对象时间戳记的缓存键是一件好事(这意味着更新对象时,缓存将失效);但是如何在模板中使用高速缓存键而又不会导致您试图从高速缓存中获取的对象受到数据库命中。 具体来说,这如何影响一对多关系(例如,您在其中呈现帖子的评论)。 Django中的示例: {% for comment in post.comments.all %} {% cache comment.pk comment.modified %} <p>{{ post.body }}</p> {% endcache %} {% endfor %} 例如,在Rails中缓存与仅对memcached的请求不同(我知道它们将您的缓存键转换为其他内容)。他们还缓存缓存密钥吗?

9
省略编程语言中的继承
我正在开发自己的编程语言。它是一种通用语言(不建议将其用于桌面,请考虑在桌面上使用静态类型的Python,即int x = 1;)。 您认为不允许继承或Mixins可以吗?(假设用户至少具有界面) 例如: Google Go,一种系统语言,通过不允许继承而震惊了编程社区。
10 python  google 

3
Python如何运作?
这个问题似乎有点愚蠢,但是到底是什么。 我开始学习Python。我知道基本语法,等等。 当我使用HTML,PHP等时,我只需编写代码,将其放在.html或.php文件中,然后双击该文件。然后我的代码运行。我可以使用数据库和其他东西-这很简单。但是Python如何工作?我正在Eclipse或Python命令行中工作,可以运行此代码,但是如果要使用Python创建网站怎么办? 我不认为这是将.py文件放在服务器上,所以我需要做什么?我了解我需要通过一些服务器命令行在我的Web服务器上安装Python(我从未使用过,但是我会在需要时找到一些教程),但是接下来要做什么?如何将我的Python知识与HTML,CSS,PHP等结合? Python也可以用于创建桌面应用程序,那又如何呢?我可以使用Python代码导出.exe文件吗? 欢迎任何包含描述我所关注问题的内容的链接!

8
如何结束对.NET的依赖?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 8年前关闭。 我多年来一直在开发Windows GUI应用程序,并于2005年初跳入.NET。.NET无疑是一个了不起的平台,并且我仍在使用它,但是由于存在着各种各样的技术,我不想留下来致力于这个营地。我想学习可以用来开发GUI应用程序的新语言。 我正在学习Ruby,并且刚刚安装了Python。我读到有关WxRuby的信息,WxRuby是用于开发Windows GUI应用程序的框架。在Ruby中。我正在寻找类似的Python框架。 除此之外,我想知道哪种语言更适合生产级GUI应用程序。我怀疑Ruby的魅力在于Ruby on Rails是否更专注于Web平台。 我知道我可能不会获得那些丰富的.NET类和令人印象深刻的Visual Studio IDE,但是我仍然想走很少的路。我不想使用IronPython和IronRuby,但是稍后某个时候,我可能会尝试探索它们。
10 python  ruby 

1
由单行功能组成的数据处理管道的单元测试
在阅读Mary Rose Cook的《函数式编程实用入门》时,她以反模式为例。 def format_bands(bands): for band in bands: band['country'] = 'Canada' band['name'] = band['name'].replace('.', '') band['name'] = band['name'].title() 以来 该功能不只是一件事 名称不是描述性的 它有副作用 作为建议的解决方案,她建议通过管道传递匿名函数 pipeline_each(bands, [call(lambda x: 'Canada', 'country'), call(lambda x: x.replace('.', ''), 'name'), call(str.title, 'name')]) 但是,在我看来,这具有无法测试的缺点。至少format_bands可以进行单元测试以检查它是否符合预期,但是如何测试管道?还是说匿名函数如此不言自明以至于不需要对其进行测试? 我为此的实际应用程序是尝试使我的pandas代码更具功能性。我经常会在“ munging”函数中使用某种管道” def munge_data(df) df['name'] = df['name'].str.lower() df = df.drop_duplicates() return df 或以管道样式重写: …

4
Python中的类装饰器:实际用例
我正在寻找Python类装饰器的实用和非综合用例。到目前为止,对我而言唯一有意义的情况是在发布者-订阅者系统中注册一个类,例如插件或事件,例如: @register class MyPlugin(Plugin): pass 要么 @recieves_notifications class Console: def print(self, text): ... 我一直在考虑的任何其他明智的情况都可以建立在继承,元类或修饰方法之上。您能否分享使用类装饰器的任何好(或坏!)示例? 谢谢!

3
有时私有功能只是功能的内部单元,尚待提取。那么为什么不测试它们呢?
有时,模块或类的私有函数仅仅是功能的内部单元,尚待提取,可能值得对其进行测试。那么为什么不测试它们呢?如果提取它们,我们将在稍后为它们编写测试。那么,当它们仍属于同一文件时,为什么不立即编写测试呢? 展示: 首先,我写道module_a。现在,我要为此编写测试。我想测试“私有”功能_private_func。我不明白为什么我不为它编写测试,如果以后我仍然可以将其重构为它自己的内部模块,然后为它编写测试。 假设我有一个具有以下功能的模块(它也可以是一个类): def public_func(a): b = _do_stuff(a) return _do_more_stuff(b) _do_stuff并且_do_more_stuff是模块的“私有”功能。 我理解我们只应该测试公共接口,而不是实现细节的想法。但是,这是事情: _do_stuff并_do_more_stuff包含该模块的大部分功能。它们中的每个都可以是不同“内部”模块的公共功能。但是它们尚未进化,并且足够大以至于可以提取为单独的文件。 因此,测试这些功能是正确的,因为它们是功能的重要单元。如果它们作为公共功能位于不同的模块中,我们将对其进行测试。那么,为什么还没有(或曾经)将它们提取到另一个文件时不对其进行测试呢?
9 python  testing 

4
微服务和共享库
我们正在设计基于独立微服务(通过RabbitMq总线连接)的系统。该代码(至少对于第一个组件而言)将以python(python2和python3)编写。我们已经有一个实现某些业务逻辑的整体应用程序,我们希望将其重构为微服务并进行扩展。让我担心的一个问题是: 在不同的微服务之间共享代码的最佳方法是什么。我们具有通用的帮助程序功能(数据处理,日志记录,配置解析等),多个微服务必须使用这些功能。 微服务本身将被开发为单独的项目(git存储库)。通用库也可以作为一个独立项目开发。如何在微服务之间共享这些库? 我看到几种方法: 围绕每个微服务所需的库版本进行复制,并根据需要进行更新 将通用库发布到内部PyPi,并将这些库列为微服务需求中的依赖项 将库存储库包含为git子模块 在决定如何进行之前,我想阅读更多有关建议的方法,最佳实践和过去的经验。您有什么建议或链接吗?

1
出于设计原因,与Ruby或Smalltalk相比,Python的连接似乎不关注连接的项目,而是关注符号。
我认为OOP的基础之一是,我们有对象,这是我们有兴趣处理的项目,然后我们向它们发送消息。 因此,看起来很自然,我有一组项目,并且需要将它们放入一个字符串中,因此可以这样做: ["x", "o", "o"].join(" | ") # joining a tic-tac-toe row in Ruby (Smalltalk的操作方式与此相同)。" | "在某种程度上,它被认为是一个参数,是如何加入的一个象征。它可以是" "也一样,如果游戏板是要简单。因此,联接元素" | "并不是我们特别感兴趣的东西,也不是程序中的主要对象具有特别的重要性或意义。 如果Python使用 " | ".join(["x", "o", "o"]) 确实感觉有点奇怪,几乎感觉就像我们在向论点传递消息,以告诉论点某些事情。也许Python更具程序性?告诉连接字符串为我们执行一些职责? 是否保存实现,以便我们不必join为每个集合类定义一个?但是我们是否也可以为任何集合类编写一次(例如在Ruby中)不是真的吗? module Enumerable def my_join(joiner) self.inject {|a,b| a.to_s + joiner + b.to_s} end end (类似这样,调用to_s每个项目,依靠to_s每个类的做自己的事情,转换为字符串,然后将它们串联)。因此,我们不必为String,Hash或Set或我们拥有的任何集合类中的每一个实现。 还是Python出局不走OOP路线?它采用len("abc")和type([])替代"abc".len()或者[].type()甚至在Python3也似乎。Python是出于设计原因这样做吗?

3
为什么Python同时需要编译器和解释器?
我可以理解Java需要编译器和解释器的事实。它将源代码编译为字节码,然后虚拟机(在Windows,Linux,Android等上)将字节码转换为当前体系结构的机器码。 但是,为什么Python同时需要编译器和解释器?由于Python不是平台独立的,为什么不只使用解释?据我所知,未经修改,您将无法在任何Windows或Linux计算机上执行Python程序(编译为字节码)。还是我错了?

4
为什么需要空函数
我开始学习python,我想知道为什么编程语言中需要空函数 例如在python中: def empty_func(): pass 即使在shell脚本中,也可以使用空函数空函数。 我的理解和问题: 为什么编程语言需要空函数?它是只是在玩编程语言还是真正重要的其他事情? 如果这是有目的的,那么谁能描述用例或给出使用空函数的真实示例? 还是有编程语言允许空函数的传统? 编辑(我从阅读答案中得到的信息): 用于草绘算法或抽象函数 对于提交表单,无需执行任何操作 某些强制性操作的占位符

9
在不同的编程语言上学习OOP有什么区别吗?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我想学习OOP。我了解Python,但对OOP知之甚少。 但是,当我在论坛上搜索“ learning OOP”时,我看到一个家伙在说:“ Python太新了,这就是为什么您不能在Python上学习OOP的原因。应该先学习Java,然后再理解Java上的OOP”。 是真的吗 在不同的编程语言上理解OOP有什么区别吗?喜欢在Java,C#,C ++,Perl或Python上学习它?

1
在格式字符串中使用“ {}”被认为是Pythonic吗?
我才知道你会写 '{}{}'.format(string_a, string_b) 代替 '{0}{1}'.format(string_a, string_b) 在Python中,即,当您希望事物按顺序逐一排列时,可以省略字符串格式参数的数字。 这被认为是Pythonic吗? 注意:“ Pythonic”是Python程序员中常用的术语,表示惯用的Python代码。在Python文化中,对于样式问题,尤其是对于像这样的非常具体的问题,人们倾向于达成明确的共识,因为该语言的明确设计理念是:“应该有一个-最好只有一个-显而易见的方式。” 这是从“ Python的禅宗”一书中引用的,这是一组格言,在定义什么是“ Pythonic”方面有很长的路要走,并且包含在Python的每个发行版中(在任何Python解释器命令行中,都import this可以看到它)。

2
带有分类和连续数据的机器学习
这个问题可能会在这里或关于... 假设您的训练数据集同时包含分类数据和连续数据,例如: Animal, breed, sex, age, weight, blood_pressure, annual_cost cat, calico, M, 10, 15 , 100 , 100 cat, tabby, F, 5, 10 , 80 , 200 dog, beagle, M, 3, 30 , 90 , 200 dog, lab, F, 8, 75 , 80 , 100 可以预测的因变量是年度兽医成本。对于处理此类数据集的具体技术,我有些困惑。处理连续数据和分类数据混合的数据集的常用方法是什么?

3
在为动态类型的语言编写编译器时与类型相关的挑战是什么?
在本次演讲中,Guido van Rossum正在谈论(27:30)有关尝试为Python代码编写编译器的评论,并评论说: 事实证明,编写一个可以维护所有出色的动态键入属性并保持程序语义正确性的编译器并非易事,因此无论您在幕后的某个地方进行何种操作并实际运行,它实际上都可以执行相同的操作任何更快 在为像Python这样的动态类型语言编写编译器时,与类型相关的(可能)挑战是什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.