草庐IT

self-assignment

全部标签

python - [] = ()、() = () 和 {} = () 'assignments'

我惊讶地发现,在Python3中,前两个没有任何问题:>>>[]=()>>>()=()>>>{}=()File"",line1SyntaxError:can'tassigntoliteral在Python2.7中,只有第一个不会引发任何问题:>>>[]=()>>>()=()File"",line1SyntaxError:can'tassignto()>>>{}=()File"",line1SyntaxError:can'tassigntoliteral这里发生了什么?为什么其中任何一个都不会引发错误?为什么()=()可能被添加为在Python3中有效?*注意,您可以将右侧替换为任何空的

python - 传递变量、创建实例、 self 、类的机制和用法 : need explanation

关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭5年前。Improvethisquestion我只是将一个工作程序重写为一个类中的函数,一切都搞砸了。首先,在类的__init__部分,我用self.variable=something声明了一堆变量。我应该能够通过在该函数中使用self.variable来访问/修改类的每个函数中的这些变量吗?也就是说,通过声明self.variable我已经把这些变量,类的范围内的全局变量都做了吧?如果没有,我该如何处理自己?其次,如何正确地向类传递参数?第三,

Python范围: "UnboundLocalError: local variable ' c' referenced before assignment"

这个问题在这里已经有了答案:UnboundLocalErroronlocalvariablewhenreassignedafterfirstuse(13个回答)Usingglobalvariablesinafunction(24个回答)关闭8年前。我正在努力解决这个问题:c=1deff(n):printc+ndefg(n):c=c+nf(1)#=>2g(1)#=>UnboundLocalError:localvariable'c'referencedbeforeassignment谢谢! 最佳答案 在函数中,分配给的变量默认被视为局

python - self.__dict__.update(**kwargs) 风格是好还是坏?

在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

python - 类型错误 : 'tuple' object does not support item assignment when swapping values

我正在用python编写一个简单的排序程序并遇到此错误。我想交换列表元素,但它返回一个错误。我在下面附上了有问题的错误和程序。list[i+1]=list[i]TypeError:'tuple'objectdoesnotsupportitemassignment代码:defmy_sort(list):forindexinrange(1,len(list)):value=list[index]i=index-1whilei>=0:ifvalue 最佳答案 评估“1,2,3”会产生(1,2,3),一个tuple。正如您所发现的,元组是不

python - 使用 self.xxxx 作为默认参数 - Python

我正在尝试简化我的一个作业问题并使代码更好一些。我正在使用的是二叉搜索树。现在我的Tree()类中有一个函数,它可以找到所有元素并将它们放入一个列表中。tree=Tree()#insertabunchofitemsintotree然后我使用我的makeList()函数从树中获取所有节点并将它们放入一个列表中。要调用makeList()函数,我执行tree.makeList(tree.root)。对我来说,这似乎有点重复。我已经用tree.调用了树对象,所以tree.root只是浪费了一点打字。现在makeList函数是:defmakeList(self,aNode):ifaNodeis

Python - self ,没有 self 和 cls

还有一个关于“self”是什么的问题,如果你不使用“self”会发生什么以及“cls”是为了什么。我“已经完成了我的功课”,我只是想确保我完成了所有工作。self-要访问对象的属性,您需要在属性名称前加上对象名称(objname.attributename)。self用于访问对象(类)本身内部的属性的方式相同。因此,如果您没有在类方法中为变量添加self前缀,您将无法在该类的其他方法或类外部访问该变量。因此,如果您只想将变量设为该方法的本地变量,则可以省略它。同样的,如果你有一个方法并且你没有想要与其他方法共享的任何变量,你可以从方法参数中省略self。cls-每个实例创建它自己的属性

python - 如何在 Nose 中设置 self.maxDiff 以获得完整的差异输出?

在Python3.3.0中使用Nose1.2.1时,有时会收到类似于以下的错误消息======================================================================FAIL:maxdiff2.test_equal----------------------------------------------------------------------Traceback(mostrecentcalllast):File"/usr/local/lib/python3.3/site-packages/nose/case.py",lin

Python:self.__class__ vs. type(self)

这个问题在这里已经有了答案:Differencebetweentype(obj)andobj.__class__(5个回答)关闭4年前。我想知道两者之间是否有区别classTest(object):def__init__(self):printself.__class__.__name__和classTest(object):def__init__(self):printtype(self).__name__?有理由偏爱其中一个吗?(在我的用例中,我想用它来确定记录器名称,但我想这并不重要) 最佳答案 >>>classTest(ob

python - 我应该什么时候使用@classmethod,什么时候使用def method(self)?

在集成我以前没有使用过的Django应用程序时,我发现了两种不同的方法来定义类中的函数。作者似乎既独特又有意地使用它们。第一个是我自己经常使用的:classDummy(object):defsome_function(self,*args,**kwargs):#dosomethinghere#selfistheclassinstance另一个是我从不使用的,主要是因为我不明白什么时候使用它:classDummy(object):@classmethoddefsome_function(cls,*args,**kwargs):#dosomethinghere#clsreferstowha