草庐IT

自身实例的 Python 调用构造函数

classFoo():def__init__(self):passdefcreate_another(self):returnFoo()#isnotworkingasintended,becauseitwillmakeybelowbecomesFooclassBar(Foo):passx=Bar()y=x.create_another()y应该属于Bar而不是Foo。是否有类似的东西:self.constructor()可以代替使用? 最佳答案 对于新式类,使用type(self)获取“当前”类:defcreate_another(

python - 动态更新依赖于同一对象其他属性状态的对象属性

假设我有一个看起来像这样的类(class):classTest(object):def__init__(self,a,b):self.a=aself.b=bself.c=self.a+self.b我要self.c的值每当属性值改变时self.a或self.b同一个实例的变化。例如test1=Test(2,4)printtest1.c#prints6test1.a=3printtest1.c#prints=6我知道为什么它仍然会打印6,但是有没有一种机制可以用来触发对self.c的更新当self.a已经改变。或者我唯一的选择是有一个方法可以返回self.c的值。基于self.a的当前状态

python - 如何检查对象是否使用 `with` 语句创建?

我想确保该类仅在“with”语句中实例化。即这个没问题:withX()asx:...这不是:x=X()我怎样才能确保这样的功能? 最佳答案 据我所知,没有直接的方法。但是,您可以有一个bool标志,以在调用对象中的实际方法之前检查是否调用了__enter__。classMyContextManager(object):def__init__(self):self.__is_context_manager=Falsedef__enter__(self):print"Entered"self.__is_context_manager=T

Python 'with' 不删除对象

尝试正确删除Python对象。我正在创建一个对象,然后假设用“with”语句删除它。但是当我在“with”语句关闭后打印出来时......对象仍然存在:classThings(object):def__init__(self,clothes,food,money):self.clothes=clothesself.food=foodself.money=moneydef__enter__(self):returnselfdef__exit__(self,exc_type,exc_val,exc_tb):print('objectdeleted')withThings('socks','

python - 有没有一种简单的方法来判断文件指针所在的行号?

在Python2.5中,我正在使用文件指针读取结构化文本数据文件(大小约为30MB):fp=open('myfile.txt','r')line=fp.readline()#...manyotherfp.readline()processingsteps,which#areusedindifferentcontextstoreadthestructures但是,在解析文件时,我遇到了一些有趣的事情,我想报告它的行号,这样我就可以在文本编辑器中调查该文件。我可以使用fp.tell()来告诉我字节偏移量在哪里(例如16548974L),但是没有“fp.tell_line_number()”

Python MySQLdb - 类中的连接

我正在制作一个Python项目,我必须在其中从数据库中查找和检索数据。我尝试制作一个类,在其中我声明连接并进行查询,这就是我到目前为止所拥有的。importMySQLdbdbc=("localhost","root","1234","users")classsql:db=MySQLdb.connect(dbc[0],dbc[1],dbc[2],dbc[3])cursor=db.cursor()defquery(self,sql):sql.cursor.execute(sql)returnsql.cursor.fetchone()defrows(self):returnsql.curso

Python UTF-16 CSV 阅读器

我有一个必须阅读的UTF-16CSV文件。Pythoncsv模块似乎不支持UTF-16。我正在使用python2.7.2。我需要解析的CSV文件很大,有几GB的数据。下面是JohnMachin问题的答案printrepr(open('test.csv','rb').read(100))输出内容只有abc的test.csv'\xff\xfea\x00b\x00c\x00'我认为csv文件是在美国的Windows机器上创建的。我正在使用MacOSXLion。如果我使用phihag提供的代码和包含一条记录的test.csv。使用的示例test.csv内容。下面是printrepr(open(

python - 更改 CNN 以使用 3D 卷积

我正在使用来自here的代码(paperhere)创建GAN。我正在尝试将其应用到一个新领域,从他们在MNIST上的应用切换到3D大脑MRI图像。我的问题在于GAN本身的定义。例如,他们用于定义生成模型的代码(采用z_dim维度的噪声并从MNIST分布生成图像,因此28x28)是这样的,我的评论基于我认为它的工作原理:defgenerate(self,z):#startwithnoiseincompactspaceassertz.shape[1]==self.z_dim#Fullyconnectedlayerthatforsomereasonexpandstolatent*64outp

python - 斐波那契调用图中的值分区(调用图是二叉树)

我有一个正在进行的研究斐波那契数列的项目,这只是一个个人项目,我创建了一个二进制文件treeclass这构成了斐波那契调用图的二叉树,因此对于f(3)我生成树:我想为我的treeclass创建一个方法get_partitions()遍历树以生成rootvalue的分区,我在这里将顺序不同的加法视为不同部分;所以这里的例子是f(3),get_partitions()方法将遍历树并产生:Partion1:2,1Partion2:2,1,0Partion3:1,1,1Partion4:1,1,1,0Partion5:1,0,1,1Partion6:1,0,1,1,0因为最终我想枚举斐波那契数

python - PyQt:QTableWidget 到 .xls 文件

所以,我有一个QTableWidget,我想使用xlwt模块将它保存到一个.xls文件...代码如下:defsavefile(self):filename=unicode(QtGui.QFileDialog.getSaveFileName(self,'SaveFile','',".xls(*.xls)"))wbk=xlwt.Workbook()self.sheet=wbk.add_sheet("sheet")self.row=0self.col=0self.add2(self.row,self.col)wbk.save(filename)defadd2(self,row,col):fo