草庐IT

new_odds

全部标签

python - 从 Python C API 中的子类型向 tp_new 和 tp_init 传递参数

我最初在Pythoncapi-sig列表上问过这个问题:Howtopassargumentstotp_newandtp_initfromsubtypes?我正在阅读PythonPEP-253关于子类型化,还有很多关于如何构造类型、调用tp_new和tp_init槽等的好建议。但是,它缺少关于将参数从子类型传递到父类(superclass)型的重要说明。似乎PEP-253根据注释未完成:(XXXThereshouldbeaparagraphortwoaboutargumentpassinghere.)所以,我正在尝试推断一些策略wellknownfromthePythonclassess

python - __new__ 方法返回与其第一个参数类型不同的对象的用例是什么?

文档impliesthatit'sok__new__(cls,...)返回类型不同于cls的对象。它说在那种情况下__init__()不会被调用。它没有明确说明,但常识或简单测试证实生成的对象不会具有cls类型。为什么允许这种看似奇怪的行为?用例是什么?这显然是故意的。 最佳答案 当您为单元测试创​​建模拟对象时,它会很有用。您可以更改__new__方法以在某些情况下返回具有相同接口(interface)的另一个对象,与原始对象相同(例如模拟原始类实例的行为),而无需修改其余代码。 关于

python - 我如何正确地继承具有 __new__ 方法的父类(super class)?

假设我们有一个类'Parent',由于某种原因定义了__new__和一个继承自它的类'Child'。(在我的例子中,我试图从我无法修改的第3方类继承)classParent:def__new__(cls,arg):#...somethingimportantisdoneherewitharg我的尝试是:classChild(Parent):def__init__(self,myArg,argForSuperclass):Parent.__new__(argForSuperclass)self.field=myArg但是同时p=Parent("argForSuperclass")按预期工

python - Pandas 数据框 : how to apply describe() to each group and add to new columns?

df:namescoreA1A2A3A4A5B2B4B6B8想要以下面的形式获取以下新数据框:namecountmeanstdmin25%50%75%maxA53............B45............如何从df.describe()中提取信息并重新格式化?谢谢 最佳答案 还有更短的:)printdf.groupby('name').describe().unstack(1)Nothingbeatsone-liner:In[145]:printdf.groupby('name').describe().reset_in

python - 找不到符号 : _BIO_new_CMS

我是mac的新手,我不明白为什么我的scrapy似乎不再起作用了。我怀疑openssl在我的elcapitan中无效。我试过:pipinstallcryptographypipinstallpyOpenSSLbrewinstallopenssl我仍然收到以下错误。有什么办法可以解决这个问题吗?$pythonPython2.7.10(v2.7.10:15c95b7d81dc,May232015,09:33:12)[GCC4.2.1(AppleInc.build5666)(dot3)]ondarwinType"help","copyright","credits"or"license"fo

python - 为什么在一个类中定义 '__new__' 和 '__init__'

我认为您可以在类中定义“__init__”或“__new__”,但为什么都在django.utils.datastructures.py中定义。我的代码:classa(object):def__init__(self):print'aaa'def__new__(self):print'sss'a()#print'sss'classb:def__init__(self):print'aaa'def__new__(self):print'sss'b()#print'aaa'数据结构.py:classSortedDict(dict):"""Adictionarythatkeepsitskey

python - 确定 super().__new__ 在 Python 3 中是否为 object.__new__?

假设我有一些调用__new__的类,我如何才能很好地使用mro并根据需要调用父类(superclass)的__new__(带参数),但不使用附加参数调用object.__new__?例如。这仅在您不向构造函数传递任何参数时才有效:classA(object):def__new__(cls,*args,**kwargs):print("A.__new__called")returnsuper(A,cls).__new__(cls,*args,**kwargs)classB(object):def__new__(cls,*args,**kwargs):print("B.__new__cal

python - 用户警告 : Pandas doesn't allow columns to be created via a new attribute name

我受困于我的pandas脚本。实际上,我正在处理两个csv文件(一个输入文件和另一个输出文件)。我想复制两列的所有行并进行计算,然后将其复制到另一个数据框(输出文件)。列如下:'lat','long','PHCount','latOffset_1','longOffset_1','PH_Lat_1','PH_Long_1','latOffset_2','longOffset_2','PH_Lat_2','PH_Long_2','latOffset_3','longOffset_3','PH_Lat_3','PH_Long_3','latOffset_4','longOffset_4',

python - 操作系统 : Defining a new URL handler that points straight at a Python script

我正在尝试在OSX下定义一个新的URL处理程序,它将指向一个python脚本。我已将Python脚本打包成一个小程序(右键单击.py,然后打开方式->构建小程序)我已将以下内容添加到小程序的Info.plist中:CFBundleURLTypesCFBundleURLNameDoMyThingCFBundleURLSchemesdmt我还使用了MoreInternetpreferencespane将“dmt”指定为协议(protocol),但是当我尝试让它将该协议(protocol)链接到我的小程序时,它说“将应用程序设置为助手时出现问题”有人知道我应该从这里去哪里吗?谢谢

python - TypeError : object. __new__() 没有参数

我一直在使用PythonTheHardWay工作,但遇到了上述错误,但不知道为什么。我删除了大部分我认为可以的填充文本。抱歉,如果它有点长。fromsysimportexitfromrandomimportrandintclassGame(object):def__int__(self,start):self.quips=["Youdied.Youkindasuckatthis.","Yourmomwouldbeproud.Ifshwweresmarter.","Suckaloser.","Ihaveasmallpuppythat'sbetteratthis."]self.start=