草庐IT

default-lazy-init

全部标签

python - 在 Python 中覆盖 __new__ 和 __init__

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Python'suseof__new__and__init__?我的理解是,__init__与Java中的构造函数不同,因为__init__只初始化一个已经隐式构造的对象(因为__init__在__new__之后调用)。但是,我需要定义的所有内容都使用了Java中“构造函数”的后一个属性。在什么情况下程序员会想要覆盖__new__?编辑:为了记录,我问的部分原因是我想知道覆盖new与在已接受的中使用单独的类方法相比有什么优势/劣势回答这个问题:MovingBeyondFactoriesinPython

python - TypeError : __init__() should return None, 不是 'int'

我正在处理这个tutorial.我正在迭代地解决这个问题。此时我有以下二进制类:classBinary:def__init__(self,value):self.value=str(value)ifself.value[:2]=='0b':print('abinary!')self.value=int(self.value,base=2)elifself.value[:2]=='0x':print('ahex!')self.value=int(self.value,base=16)else:print(self.value)returnint(self.value)我正在使用pytes

Python __init__ 返回创建失败

首先,我知道Python中类的__init__()函数不能返回值,所以遗憾的是这个选项不可用。由于我的代码结构,在类的__init__函数中进行数据断言(并提示用户提供信息)是有意义的。但是,这意味着对象的创建可能会失败,我希望能够从中优雅地恢复。我想知道继续此操作的最佳方法是什么。我考虑过将全局bool值设置为“有效构造”标志,但我不想这样做。任何其他想法(除了重组之外,断言可以在初始化之外发生,并且值作为参数传递)?我基本上是在寻找一种在初始化期间成功返回0并在失败时返回-1的方法。(像大多数C系统调用一样) 最佳答案 您可以在

python - 在对象的第二次初始化时,为什么 __init__ 在 __del__ 之前被调用?

考虑以下示例代码classA:def__init__(self,i):self.i=iprint("Initializingobject{}".format(self.i))def__del__(self):print("Deletingobject{}".format(self.i))foriin[1,2]:a=A(i)在循环中创建对象旨在确保在创建新的A对象之前调用A的析构函数。但显然发生了以下情况:Initializingobject1Initializingobject2Deletingobject1Deletingobject2为什么只有在新对象初始化后才调用对象1的析构函数

python - __init__ 是类方法吗?

我正在研究Python的super方法和多重继承。我读到了一些东西,比如当我们使用super调用一个在所有基类中都有实现的基方法时,即使有各种参数,也只会调用一个类的方法。例如,classBase1(object):def__init__(self,a):print"InBase1"classBase2(object):def__init__(self):print"InBase2"classChild(Base1,Base2):def__init__(self):super(Child,self).__init__('Intendedforbase1')super(Child,sel

python - tensorflow 错误 : TypeError: __init__() got an unexpected keyword argument 'dct_method'

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭4年前。Improvethisquestion运行TensorflowObjectDetectionAPI时在当前版本的Tensorflow-Gpu(1.5)中,尝试训练一组自定义图像时会抛出以下错误。INFO:tensorflow:Scaleof0disablesregularizer.INFO:

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 - 为什么 required 和 default 在ndb中是互斥的?

在旧的googleappenginedatastoreAPI中,“required”和“default”可以一起用于属性定义。使用ndb我得到一个ValueError:repeated,requiredanddefaultaremutallyexclusive.示例代码:fromgoogle.appengine.extimportndbfromgoogle.appengine.extimportdbclassNdbCounter(ndb.Model):#raisesValueErrorcount=ndb.IntegerProperty(required=True,default=1)c

python - 如何只导入包中没有 exec __init__.py 的子模块

当从包中导入子模块时,包文件夹中的__init__.py文件将首先执行,我该如何禁用它。有时我只需要一个包中的一个功能,导入整个包有点重。例如,pandas.io.clipboard模块不依赖于pandas中的任何其他函数。frompandas.io.clipboardimportclipboard_get将导入函数,但也会导入所有pandas公共(public)模块。是否有一些方法可以只导入剪贴板模块,因为它是我自己的应用程序文件夹中的一个模块。 最佳答案 没有,设计。如果你想在导入子模块时避免太多开销,你只需使用空的__init

python - 是否允许在 Python 中修改 func_defaults(Python 3.x 中的 __defaults__)?

我试过在Python2.6中这样做,它确实“有效”:>>>deff(i='I'):returni...>>>f.func_defaults=(10,)>>>f()10但这是官方指定的行为,还是我遇到了特定于实现的行为? 最佳答案 在thedocumentationfunc_defaults被记录为“可写”,因此它似乎是已定义的行为。 关于python-是否允许在Python中修改func_defaults(Python3.x中的__defaults__)?,我们在StackOverflo