Tag: python

向初学者解释python“self”variables

我几乎不知道OOP的术语和概念。 我从概念上了解对象是什么,对象是否有方法。 我甚至明白,在Python中,类是对象! 这很酷,我只是不知道这意味着什么。 这是不是跟我一起点击。 我目前正试图了解一些详细的答案,我认为这将说明我对Python的理解: Python中的“yield”关键字是做什么的? 什么是Python中的元类? 在第一个答案中,作者使用下面的代码作为例子: >>> class Bank(): # let's create a bank, building ATMs … crisis = False … def create_atm(self) : … while not self.crisis : … yield "$100" 我不立即苟且self所指的。 这绝对是不了解课堂的一个症状,我会在某个时候着手。 澄清,在 >>> def func(): … for i in range(3): … print i 我明白, i指向列表range(3)中的一个项目,因为它在一个函数中,不是全局的。 但是, self “指向”是什么?

Python urllib2进度钩子

我正在尝试使用urllib2 http客户端在python中创build一个下载进度条。 我已经浏览了API(和谷歌),似乎urllib2不允许你注册进度挂钩。 不过,较旧的已弃用的urllib具有此function。 有谁知道如何使用urllib2创build进度条或报告钩子? 还是有一些其他黑客获得类似的function?

我怎样才能find一个集合的所有子集,正好有n个元素?

我正在用Python编写一个程序,并且我意识到我需要解决的一个问题是给定一个具有n元素(| S | = n)的集合S来testing一个特定阶m所有可能子集的函数即具有m个元素)。 要使用答案产生部分解,然后再次尝试下一个阶m = m + 1,直到m = n。 我正在写一个表单的解决scheme: def findsubsets(S, m): subsets = set([]) … return subsets 但是,我知道Python我期望一个解决scheme已经在那里。 什么是完成这个最好的方法?

如何从SQLAlchemyexpression式获取原始的编译SQL查询?

我有一个SQLAlchemy查询对象,并希望得到编译的SQL语句的文本,其所有参数绑定(例如没有%s或其他variables等待被语句编译器或MySQLdb方言引擎等绑定)。 在查询中调用str()显示如下所示的内容: SELECT id WHERE date_added <= %s AND date_added >= %s ORDER BY count DESC 我试过查找query._params,但它是一个空字典。 我使用sqlalchemy.ext.compiler.compiles修饰器的这个例子编写了我自己的编译器,但是即使这个语句仍然有我想要数据的%s 。 我不能完全弄清楚什么时候我的参数混入来创build查询; 当检查查询对象时,它们总是一个空的字典(尽pipe查询执行正常,当您打开回显logging时,引擎会将其打印出来)。 我开始收到SQLAlchemy不希望我知道底层查询的消息,因为它打破了expression式API接口的所有不同DB-API的一般性质。 我不介意在查询之前执行查询是什么; 我只是想知道!

selenium元素不可见的例外

我一直负责编写一个parsing器来点击一个网站上的button,我有问题只点击其中一个button。 以下代码适用于除一个button之外的每个button。 这里是html: http : //pastebin.com/6dLF5ru8 这里是源html: http : //pastebin.com/XhsedGLb python代码: driver = webdriver.Firefox() … el = driver.find_element_by_id("-spel-nba") actions.move_to_element(el) actions.sleep(.1) actions.click() actions.perform() 我得到这个错误。 ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with 根据Saifur我刚刚尝试等待与相同的元素不可见的exception: wait = WebDriverWait(driver, 10) wait.until(EC.presence_of_element_located((By.XPATH, "//input[contains(@id,'spsel')][@value='nba']"))).click()

dynamic加载python模块

在Python中,如何在编程运行时dynamic地将模块添加到包中。 我希望能够从外部进程中将模块添加到软件包目录中,并且能够在我的程序中使用这些新模块: import package def doSomething(name): pkg = __import__("package." + name) mod = getattr(pkg, name) mod.doSomething() 我如何做到这一点?

如何在matplotlib中自定义图例

我现在用这种方式用matplotlib生成我的图例: if t==25: l1,l2 = ax2.plot(x320,vTemp320,'or',x320,vAnaTemp320,'-r') elif t==50: l3,l4 = ax2.plot(x320,vTemp320,'ob',x320,vAnaTemp320,'-b') else: l5,l6 = ax2.plot(x320,vTemp320,'og',x320,vAnaTemp320,'-g') plt.legend((l1,l2,l3,l4,l5,l6), ('t=25 Simulation', 't=25 Analytical','t=50 Simulation', 't=50 Analytical','t=500 Simulation', 't=500 Analytical'), bbox_to_anchor=(-.25, 1), loc=2, borderaxespad=0.,prop={'size':12}) 不知何故的作品见1 。 但是我的传奇中有重复的信息。 我宁愿分开这个传说。 所以我有不同的颜色线对应的时间吨。 作为我的分析解决scheme的法线是我的模拟结果的一个点。 就是这样 – (红线)t = 25 – (蓝线)t = 50 – (绿线)t = 500 Simulaton – 分析解决scheme 现在有人可以用matplotlib来实现吗?

__file__variables意味着什么?

A = os.path.join(os.path.dirname(__file__), '..') B = os.path.dirname(os.path.realpath(__file__)) C = os.path.abspath(os.path.dirname(__file__)) 我通常只是用实际path来硬连线。 但是这些语句在运行时确定path是有原因的,我真的很想理解os.path模块,所以我可以开始使用它。

如何使scipy.interpolate给出超出input范围的外推结果?

我试图移植一个使用手动内插器(由math家同事开发)的程序来使用scipy提供的内插器。 我想使用或包装scipy插入器,以便它尽可能接近旧插值器的行为。 这两个函数之间的主要区别在于,在我们的原始插补器中 – 如果input值高于或低于input范围,我们的原始插补器将推断结果。 如果你用scipy插入器试试这个,会引发一个ValueError 。 以这个程序为例: import numpy as np from scipy import interpolate x = np.arange(0,10) y = np.exp(-x/3.0) f = interpolate.interp1d(x, y) print f(9) print f(11) # Causes ValueError, because it's greater than max(x) 是否有一个明智的方法来使得它不会崩溃,最后一行将简单地进行线性外推,继续将第一个和最后两个点定义的梯度延续到无穷大。 请注意,在真正的软件中,我并没有使用exp函数 – 这里只是为了说明!

Python:统计列表中单词的频率

对于程序分配,我需要计算文件中单词的频率。 我一直在寻找这个网站和其他人的帮助,但是他们展示的方法是我们没有在课堂上学到的,所以我不能使用它们。 到目前为止,我发现的方法使用了我们还没有学到的计数器或字典。 我已经从包含所有单词的文件中创build了列表,但不知道如何find列表中每个单词的频率。 我知道我将需要一个循环来做到这一点,但无法弄清楚。 任何帮助将不胜感激。 谢谢。 编辑:所以事实certificate,我需要创build两个名单,一个为独特的话,另一个为单词的频率。 我将不得不根据频率列表对唯一的单词列表进行sorting,使得频率最高的单词在列表中排在第一位。 我在文本中有devise,但仍然有点不确定如何在Python中实现它,所以我将能够正确地sorting列表。 我正在使用Python 3.3 这是基本的devise: original list = ["the", "car",….] newlst = [] frequency = [] for word in the original list if word not in newlst newlst.append(word) set frequency = 1 else increase the frequency sort newlst based on frequency list