我正在编写测试,我听说有人说要使用self.assertFalse而不是assertFalse.为什么会这样,有什么好处吗? 最佳答案 如果你跑了importunittestclassTest_Unittest(unittest.TestCase):deftest_assert(self):assertFalsedeftest_assertFalse(self):self.assertFalse(True)if__name__=='__main__':unittest.main()你得到同样的日志信息,同样的失败:FF=======
我想用这样的方法中的另一个实例替换一个对象实例:classA:defmethod1(self):self=func(self)从数据库中检索对象。 最佳答案 替换'self'变量不太可能完成您尝试做的任何事情,这不能仅通过将func(self)的结果存储在不同的变量中来完成。“self”实际上是一个仅在方法调用期间定义的局部变量,用于传递正在操作的类的实例。替换self实际上不会替换对其他对象持有的类的原始实例的引用,也不会创建对分配给它的新实例的持久引用。 关于python-在方法中用
我正在浏览一些代码,我注意到一行引起了我的注意。代码类似于下面的例子classMyClass:def__init__(self):passdefcall_me(self=''):print(self)这看起来像我见过的任何其他类,但是str作为self的默认值传入。如果我打印出self,它的行为正常>>>MyClass().call_me()这一直困扰着我,我无法弄清楚为什么要使用它。str实例会作为self的默认值传入有什么原因吗? 最佳答案 不是真的,这只是一种奇怪的方式,使它在通过类调用时不会引发错误:MyClass.call
这个问题在这里已经有了答案:Howtopassadefaultargumentvalueofaninstancemembertoamethod?(6个回答)关闭4年前.defsave_file(self,outputfilename=self.image_filename):self.file.read(outputfilename)....在第一行给出NameError:name'self'isnotdefined。似乎Python不接受它。如何重写代码使其不会引发异常? 最佳答案 使用默认的None并检测它。defsave_fi
关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭5年前。Improvethisquestion我只是将一个工作程序重写为一个类中的函数,一切都搞砸了。首先,在类的__init__部分,我用self.variable=something声明了一堆变量。我应该能够通过在该函数中使用self.variable来访问/修改类的每个函数中的这些变量吗?也就是说,通过声明self.variable我已经把这些变量,类的范围内的全局变量都做了吧?如果没有,我该如何处理自己?其次,如何正确地向类传递参数?第三,
在Python中,假设我有一个类Circle,它继承自Shape。Shape需要x和y坐标,此外,Circle需要半径。我希望能够通过执行类似的操作来初始化Circle,c=Circle(x=1.,y=5.,r=3.)Circle继承自shape,所以我需要对__init__使用命名参数,因为不同的类需要不同的构造函数。我可以手动设置x、y和r。classShape(object):def__init__(self,**kwargs):self.x=kwargs['x']self.y=kwargs['y']classCircle(Shape):def__init__(self,**kw
我正在尝试简化我的一个作业问题并使代码更好一些。我正在使用的是二叉搜索树。现在我的Tree()类中有一个函数,它可以找到所有元素并将它们放入一个列表中。tree=Tree()#insertabunchofitemsintotree然后我使用我的makeList()函数从树中获取所有节点并将它们放入一个列表中。要调用makeList()函数,我执行tree.makeList(tree.root)。对我来说,这似乎有点重复。我已经用tree.调用了树对象,所以tree.root只是浪费了一点打字。现在makeList函数是:defmakeList(self,aNode):ifaNodeis
还有一个关于“self”是什么的问题,如果你不使用“self”会发生什么以及“cls”是为了什么。我“已经完成了我的功课”,我只是想确保我完成了所有工作。self-要访问对象的属性,您需要在属性名称前加上对象名称(objname.attributename)。self用于访问对象(类)本身内部的属性的方式相同。因此,如果您没有在类方法中为变量添加self前缀,您将无法在该类的其他方法或类外部访问该变量。因此,如果您只想将变量设为该方法的本地变量,则可以省略它。同样的,如果你有一个方法并且你没有想要与其他方法共享的任何变量,你可以从方法参数中省略self。cls-每个实例创建它自己的属性
在Python3.3.0中使用Nose1.2.1时,有时会收到类似于以下的错误消息======================================================================FAIL:maxdiff2.test_equal----------------------------------------------------------------------Traceback(mostrecentcalllast):File"/usr/local/lib/python3.3/site-packages/nose/case.py",lin
这个问题在这里已经有了答案:Differencebetweentype(obj)andobj.__class__(5个回答)关闭4年前。我想知道两者之间是否有区别classTest(object):def__init__(self):printself.__class__.__name__和classTest(object):def__init__(self):printtype(self).__name__?有理由偏爱其中一个吗?(在我的用例中,我想用它来确定记录器名称,但我想这并不重要) 最佳答案 >>>classTest(ob