Tag: python

在Python的命令行中,允许configuration选项被覆盖的最佳方法是什么?

我有一个Python应用程序需要相当多的(〜30)configuration参数。 到目前为止,我使用OptionParser类来定义应用程序本身的默认值,并可以在调用应用程序时在命令行中更改各个参数。 现在我想使用“正确的”configuration文件,例如从ConfigParser类。 同时,用户仍应该能够在命令行上更改单个参数。 我想知道是否有任何方法来结合这两个步骤,例如使用optparse(或更新的argparse)来处理命令行选项,而是从ConfigParse语法的configuration文件中读取默认值。 任何想法如何以简单的方式做到这一点? 我真的不喜欢手动调用ConfigParse,然后手动设置所有默认的所有optinos到适当的值… 任何帮助是极大的赞赏 :)

具有太多参数的类:更好的devise策略?

我正在与神经元模型。 我正在devise的一个类是一个细胞类,这是一个神经元的拓扑描述(几个连接在一起的隔间)。 它有很多参数,但都是相关的,例如: 顶端双翅,体长,体细胞直径,顶端长度,分枝随机性,分枝长度等等…总共有15个参数! 我可以将所有这些设置为默认值,但我的类看起来很疯狂,几行参数。 这种事情也必须偶尔发生在别人身上,有没有一些明显的更好的方法来devise这个或者我做对了吗? 更新:正如你有些人问我已经附加了我的类的代码,正如你可以看到这个类有大量的参数(> 15),但它们都被使用,并且是定义单元格的拓扑所必需的。 问题的根本在于他们创造的物理对象是非常复杂的。 我附加了这个类生成的对象的图像表示。 有经验的程序员如何做到这一点,以避免定义中的参数太多? class LayerV(__Cell): def __init__(self,somatic_dendrites=10,oblique_dendrites=10, somatic_bifibs=3,apical_bifibs=10,oblique_bifibs=3, L_sigma=0.0,apical_branch_prob=1.0, somatic_branch_prob=1.0,oblique_branch_prob=1.0, soma_L=30,soma_d=25,axon_segs=5,myelin_L=100, apical_sec1_L=200,oblique_sec1_L=40,somadend_sec1_L=60, ldecf=0.98): import random import math #make main the regions: axon=Axon(n_axon_seg=axon_segs) soma=Soma(diam=soma_d,length=soma_L) main_apical_dendrite=DendriticTree(bifibs= apical_bifibs,first_sec_L=apical_sec1_L, L_sigma=L_sigma,L_decrease_factor=ldecf, first_sec_d=9,branch_prob=apical_branch_prob) #make the somatic denrites somatic_dends=self.dendrite_list(num_dends=somatic_dendrites, bifibs=somatic_bifibs,first_sec_L=somadend_sec1_L, first_sec_d=1.5,L_sigma=L_sigma, branch_prob=somatic_branch_prob,L_decrease_factor=ldecf) #make oblique dendrites: oblique_dends=self.dendrite_list(num_dends=oblique_dendrites, bifibs=oblique_bifibs,first_sec_L=oblique_sec1_L, first_sec_d=1.5,L_sigma=L_sigma, branch_prob=oblique_branch_prob,L_decrease_factor=ldecf) #connect axon to soma: axon_section=axon.get_connecting_section() […]

如何将一个布尔数组转换为numpy中的索引数组

是否有一个有效的Numpy机制来检索数组中的位置的整数索引基于条件是真实的而不是布尔掩码数组? 例如: x=np.array([range(100,1,-1)]) #generate a mask to find all values that are a power of 2 mask=x&(x-1)==0 #This will tell me those values print x[mask] 在这种情况下,我想知道mask[i]==True的mask的索引号。 有没有可能产生这些循环?

Python super()行为不可靠

出于某种原因, super()方法并不总是按预期行事,select返回: TypeError('super(type, obj): obj must be an instance or subtype of type)' 我明白错误的含义 。 我不明白为什么它会出现错误。 以下是正在破解的代码片段。 系统中的所有对象都是新的样式对象。 真正有趣的是这个错误并不总是显示出来。 我不知道是什么原因造成的。 Retrieval的super()方法传递Retrieval类,然后将其本身作为一个对象,就我所知,它应该是如何调用super() 。 任何想法呢? 在文件DBConnection.py中 : class DBAdminConnection(object): def __init__(self): self.user = DBUserConnection().user self.submissions = DBSubmissionConnection() 在文件Retrieval.py中 class Retrieval(DBConnection.DBAdminConnection): def __init__(self, username=None, password=None, unique_key=None): super(Retrieval,self).__init__() if username and password: self.username = username self.user.login(username,password, config.DATABASE) if self.user.error: […]

如何将HTMLembeddediPython输出?

是否有可能将呈现的HTML输出embeddediPython输出? 一种方法是使用 from IPython.core.display import HTML HTML('<a href="http://example.com">link</a>') 或(IPython多行单元格别名) %%html <a href="http://example.com">link</a> 哪个返回一个格式化的链接,但是 此链接不会从控制台打开带有网页的浏览器。 虽然IPython笔记本支持诚实的渲染。 我不知道如何在列表或pandas打印的表格中呈现HTML()对象。 你可以做df.to_html() ,但不要在单元格内build立链接。 这个输出在PyCharm Python控制台中不是交互式的(因为它不是QT)。 我如何克服这些缺点,使iPython输出更具互动性?

Django中的类视图

Django视图指向一个函数,如果你只想改变一些function,这可能是一个问题。 是的,我可以有百万个关键字参数,甚至更多的if语句,但是我正在考虑更多的面向对象的方法。 例如,我有一个显示用户的页面。 这个页面与显示一个组的页面非常相似,但是与使用另一个数据模型不太相似。 集团也有成员等… 一种方法是将视图指向类方法,然后扩展该类。 有没有人尝试过这种方法或有任何其他的想法?

在Python中获取计时器滴答

我只是想要一段代码。 伪代码看起来像: start = get_ticks() do_long_code() print "It took " + (get_ticks() – start) + " seconds." 这在Python中看起来如何? 更具体地说,我如何获得自午夜以来的蜱数量(或者Python组织这个时间)?

是否有可能在没有线程或写入单独的文件/脚本的subprocess中运行函数

import subprocess def my_function(x): return x + 100 output = subprocess.Popen(my_function, 1) #I would like to pass the function object and its arguments print output #desired output: 101 我只find使用单独的脚本打开subprocess的文档。 有谁知道如何传递函数对象,甚至是传递函数代码的简单方法吗?

Get:TypeError:'dict_values'对象在使用python 3.2.3时不支持索引。

这是我的代码: {names[i]:d.values()[i] for i in range(len(names))} 当使用python 2.7.3时,这个工作完全正常。 然而,当我使用python 3.2.3,我得到一个错误,说明'dict_values' object does not support indexing 。 我如何修改代码以使其与3.2.3兼容?

Matplotlib /pandas错误使用直方图

我有一个问题,从pandas系列对象的直方图,我不明白为什么它不工作。 代码之前工作正常,但现在没有。 这是我的一些代码(具体来说,我试图做一个直方图的pandas系列对象): type(dfj2_MARKET1['VSPD2_perc']) 输出结果: pandas.core.series.Series 这是我的绘图代码: fig, axes = plt.subplots(1, 7, figsize=(30,4)) axes[0].hist(dfj2_MARKET1['VSPD1_perc'],alpha=0.9, color='blue') axes[0].grid(True) axes[0].set_title(MARKET1 + ' 5-40 km / h') 错误信息: AttributeError Traceback (most recent call last) <ipython-input-75-3810c361db30> in <module>() 1 fig, axes = plt.subplots(1, 7, figsize=(30,4)) 2 —-> 3 axes[1].hist(dfj2_MARKET1['VSPD2_perc'],alpha=0.9, color='blue') 4 axes[1].grid(True) 5 axes[1].set_xlabel('Time spent [%]') C:\Python27\lib\site-packages\matplotlib\axes.pyc in hist(self, x, […]