Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

7
在python中连接字符串和整数
用python说你有 s = "string" i = 0 print s+i 会给你错误,所以你写 print s+str(i) 不会出错。 我认为这是处理int和字符串连接的笨拙方式。甚至Java也不需要显式转换为String来进行这种连接。有没有更好的方法来进行这种串联,即在Python中无需显式转换?

10
减少Django的内存使用量。低挂水果?
我的内存使用量随着时间的推移而增加,并且重新启动Django对用户而言并不友好。 我不确定如何分析内存使用情况,但是一些有关如何开始测量的提示将很有用。 我感觉有些简单的步骤可以带来很大的收益。确保将“调试”设置为“假”是显而易见的。 有人可以建议别人吗?在低流量的网站上缓存会带来多少改善? 在这种情况下,我使用mod_python在Apache 2.x下运行。我听说mod_wsgi较为精简,但在此阶段进行切换将非常棘手,除非我知道收益会很大。 编辑:感谢到目前为止的提示。关于如何发现内存用尽的任何建议?是否有任何有关Python内存分析的指南? 同样如前所述,有些事情会使切换到mod_wsgi变得很棘手,因此我想对在朝这个方向努力之前所能获得的收益有所了解。 编辑:卡尔在这里发布了更详细的回复,值得一读:Django部署:减少Apache的开销 编辑: Graham Dumpleton的文章是我在MPM和mod_wsgi相关的东西上找到的最好的文章。我很失望,但是没人能提供有关调试应用程序本身的内存使用情况的任何信息。 最终编辑:好吧,我一直在与Webfaction讨论这个问题,看他们是否可以协助重新编译Apache,这就是他们的话: “我真的认为切换到MPM Worker + mod_wsgi设置不会给您带来太大的好处。我估计您可能可以节省20MB左右,但可能不超过20MB。” 所以!这使我回到了最初的问题(我仍然不明智)。如何确定问题所在?这是一个众所周知的准则,如果不进行测试以查看需要优化的地方就不会进行优化,但是关于测量Python内存使用情况的教程的方式很少,而针对Django的教程则完全没有。 感谢大家的帮助,但我认为这个问题仍然悬而未决! 另一个最终编辑;-) 我在django-users列表上问了这个,并得到了一些非常有帮助的回复 老实说,有史以来最后一次更新! 这是刚刚发布。可能是迄今为止最好的解决方案:使用Pympler分析Django对象的大小和内存使用情况


8
创建动态选择字段
我在尝试了解如何在Django中创建动态选择字段时遇到了一些麻烦。我有一个模型设置类似: class rider(models.Model): user = models.ForeignKey(User) waypoint = models.ManyToManyField(Waypoint) class Waypoint(models.Model): lat = models.FloatField() lng = models.FloatField() 我想做的是创建一个选择字段whos的值是与该骑手相关联的航点(将是登录的人)。 目前,我以如下形式覆盖init: class waypointForm(forms.Form): def __init__(self, *args, **kwargs): super(joinTripForm, self).__init__(*args, **kwargs) self.fields['waypoints'] = forms.ChoiceField(choices=[ (o.id, str(o)) for o in Waypoint.objects.all()]) 但是所有要做的就是列出所有路标,它们与任何特定的骑手都没有关联。有任何想法吗?谢谢。

12
virtualenv --no-site-packages和pip仍在查找全局软件包吗?
我印象中virtualenv --no-site-packages会创建一个完全独立和隔离的Python环境,但事实并非如此。 例如,我在全局安装了python-django,但希望使用其他Django版本创建virtualenv。 $ virtualenv --no-site-packages foo New python executable in foo/bin/python Installing setuptools............done. $ pip -E foo install Django Requirement already satisfied: Django in /usr/share/pyshared Installing collected packages: Django Successfully installed Django 据我所知,pip -E foo install以上内容应该重新安装新版本的Django。另外,如果我告诉pip冻结环境,则会得到很多软件包。我希望对于一个新鲜的环境来说--no-site-packages这是空白? $ pip -E foo freeze 4Suite-XML==1.0.2 BeautifulSoup==3.1.0.1 Brlapi==0.5.3 BzrTools==1.17.0 Django==1.1 ... and so …
136 python  virtualenv  pip 

9
为什么表达式0 <0 == 0在Python中返回False?
在Python 2.6中查看Queue.py时,我发现这个构造有点奇怪: def full(self): """Return True if the queue is full, False otherwise (not reliable!).""" self.mutex.acquire() n = 0 &lt; self.maxsize == self._qsize() self.mutex.release() return n 如果maxsize为0,则队列永远不会满。 我的问题是在这种情况下如何运作?如何0 &lt; 0 == 0被认为是错误的? &gt;&gt;&gt; 0 &lt; 0 == 0 False &gt;&gt;&gt; (0) &lt; (0 == 0) True &gt;&gt;&gt; (0 &lt; 0) …
136 python 

3
我如何知道是否可以禁用SQLALCHEMY_TRACK_MODIFICATIONS?
每次我运行使用Flask-SQLAlchemy的应用程序时,都会收到以下警告,提示该SQLALCHEMY_TRACK_MODIFICATIONS选项将被禁用。 /home/david/.virtualenvs/flask-sqlalchemy/lib/python3.5/site-packages/flask_sqlalchemy/__init__.py:800: UserWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning. warnings.warn('SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning.') 我试图找出此选项的作用,但是Flask-SQLAlchemy文档尚不清楚该跟踪的用途。 SQLALCHEMY_TRACK_MODIFICATIONS 如果设置为True(默认值),Flask-SQLAlchemy将跟踪对象的修改并发出信号。这需要额外的内存,如果不需要,可以将其禁用。 如何确定我的项目是否需要,SQLALCHEMY_TRACK_MODIFICATIONS = …


2
什么是Python缓冲区类型?
bufferpython中有一个类型,但是我不知道如何使用它。 在Python文档中,描述为: buffer(object[, offset[, size]]) object参数必须是支持缓冲区调用接口的对象(例如字符串,数组和缓冲区)。将创建一个引用该对象参数的新缓冲区对象。缓冲区对象将从对象的开头(或指定的偏移量)开始是一个切片。切片将延伸到对象的末尾(或具有由size参数指定的长度)。
136 python  python-2.7 

10
在Python中获取对象的全限定类名
出于记录目的,我想检索Python对象的完全限定的类名。(对于完全限定,我的意思是类名称,包括软件包和模块名称。) 我知道x.__class__.__name__,但是有一种简单的方法来获取软件包和模块吗?

7
构造tkinter应用程序的最佳方法?
以下是我典型的python tkinter程序的整体结构。 def funA(): def funA1(): def funA12(): # stuff def funA2(): # stuff def funB(): def funB1(): # stuff def funB2(): # stuff def funC(): def funC1(): # stuff def funC2(): # stuff root = tk.Tk() button1 = tk.Button(root, command=funA) button1.pack() button2 = tk.Button(root, command=funB) button2.pack() button3 = tk.Button(root, …
136 python  tkinter 

10
键盘中断与python的多处理池
如何使用python的多处理池处理KeyboardInterrupt事件?这是一个简单的示例: from multiprocessing import Pool from time import sleep from sys import exit def slowly_square(i): sleep(1) return i*i def go(): pool = Pool(8) try: results = pool.map(slowly_square, range(40)) except KeyboardInterrupt: # **** THIS PART NEVER EXECUTES. **** pool.terminate() print "You cancelled the program!" sys.exit(1) print "\nFinally, here are the results: …

4
从Matplotlib的颜色图中获取单个颜色
cmap例如,如果您有一个Colormap : cmap = matplotlib.cm.get_cmap('Spectral') 如何从0到1之间获得特定的颜色,其中0是地图中的第一种颜色,而1是地图中的最后一种颜色? 理想情况下,我可以通过执行以下操作来获得地图中的中间颜色: &gt;&gt;&gt; do_some_magic(cmap, 0.5) # Return an RGBA tuple (0.1, 0.2, 0.3, 1.0)

9
Python ElementTree模块:使用方法“ find”,“ findall”时,如何忽略XML文件的命名空间以找到匹配的元素
我想使用“ findall”方法在ElementTree模块中找到源xml文件的某些元素。 但是,源xml文件(test.xml)具有名称空间。我截断一部分xml文件作为示例: &lt;?xml version="1.0" encoding="iso-8859-1"?&gt; &lt;XML_HEADER xmlns="http://www.test.com"&gt; &lt;TYPE&gt;Updates&lt;/TYPE&gt; &lt;DATE&gt;9/26/2012 10:30:34 AM&lt;/DATE&gt; &lt;COPYRIGHT_NOTICE&gt;All Rights Reserved.&lt;/COPYRIGHT_NOTICE&gt; &lt;LICENSE&gt;newlicense.htm&lt;/LICENSE&gt; &lt;DEAL_LEVEL&gt; &lt;PAID_OFF&gt;N&lt;/PAID_OFF&gt; &lt;/DEAL_LEVEL&gt; &lt;/XML_HEADER&gt; 示例python代码如下: from xml.etree import ElementTree as ET tree = ET.parse(r"test.xml") el1 = tree.findall("DEAL_LEVEL/PAID_OFF") # Return None el2 = tree.findall("{http://www.test.com}DEAL_LEVEL/{http://www.test.com}PAID_OFF") # Return &lt;Element '{http://www.test.com}DEAL_LEVEL/PAID_OFF' at 0xb78b90&gt; 尽管它可以工作,但是因为有一个命名空间“ {http://www.test.com}”,但是在每个标签前面添加一个命名空间非常不方便。 使用“ find”,“ findall”等方法时,如何忽略名称空间?

8
Python / SciPy的峰值发现算法
我可以通过找到一阶导数的零交叉点或类似的东西自己写点东西,但是它似乎包含在标准库中,具有足够的通用性。有人知道吗? 我的特定应用是2D阵列,但通常将其用于查找FFT等中的峰值。 具体来说,在这些类型的问题中,有多个强峰值,然后是由噪声引起的许多较小的“峰值”,应将其忽略。这些仅仅是示例;不是我的实际数据: 一维峰: 二维峰: 峰值查找算法将找到这些峰的位置(而不仅仅是它们的值),理想情况下,可能会使用二次插值或其他方法找到真正的样本间峰,而不仅仅是具有最大值的索引。 通常,您只关心几个强峰,因此选择它们是因为它们高于某个阈值,或者因为它们是有序列表的前n个峰(按振幅排序)。 正如我说的,我自己会写这样的东西。我只是问是否有一个已知的运作良好的功能或软件包。 更新: 我翻译了一个MATLAB脚本,它在1-D情况下工作得很好,但可能会更好。 更新的更新: sixtenbe 为一维案例创建了更好的版本。

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.