草庐IT

self-assignment

全部标签

python - 字典中的 "TypeError: ' unicode ' object does not support item assignment"

我正在尝试构建/更新字典。我将昵称作为temp_dict中的键并寻找要添加的ID。摘self的代码。我认为你看到我的错误就足够了。d1={u'status':u'ok',u'count':1,u'data':[{u'nickname':u'45sss',u'account_id':553472}]}temp_dict={}forkey,valueind1.iteritems():if"data"==key:fordic2invalue:x=dic2['nickname']y=dic2['account_id']temp_dict[x]=y;我的错误:Traceback(mostrece

python - 在 Python 中, 'return self' 返回对象的副本还是指针?

假设我有一个类classA:defmethod(self):returnself如果调用方法,返回的是指向A对象的指针,还是该对象的副本? 最佳答案 它返回一个引用:>>>a=A()>>>id(a)40190600L>>>id(a.method())40190600L>>>aisa.method()True您可以这样想:您实际上将self作为参数传递给.method()函数,它返回相同的self。 关于python-在Python中,'returnself'返回对象的副本还是指针?,我们

python - 返回 self python的目的

我对returnself有疑问classFib:def__init__(self,max):self.max=maxdef__iter__(self):self.a=0self.b=1returnselfdef__next__(self):fib=self.aiffib>self.max:raiseStopIterationself.a,self.b=self.b,self.a+self.breturnfib这个问题我已经看过returnselfproblem但我不明白returnself有什么好处? 最佳答案 返回self来自方法

python - 为什么我应该在 Python 中引用 "names"和 "binding"而不是 "variables"和 "assignment"?

为什么我应该在Python中引用“名称”和“绑定(bind)”而不是“变量”和“赋值”?我知道这个问题有点笼统,但我真的很想知道:) 最佳答案 在C和C++中,变量是命名的内存位置。变量的值是存储在该位置的值。分配给变量并修改该值。所以变量是内存位置,而不是它的名称。在Python中,变量是用来引用对象的名称。变量的值就是那个对象。到目前为止听起来是一样的。但是分配给变量并且您不修改对象本身,而是更改变量引用的对象。所以变量是名称,而不是对象。出于这个原因,如果您抽象地考虑Python的属性,或者如果您同时谈论多种语言,那么对这两种

python - 如何在生成器对象中使用 unittest 的 self.assertRaises 异常?

我有一个生成器对象,我想对其进行单元测试。它经历了一个循环,当循环结束时某个变量仍然为0时,我引发了一个异常。我想对此进行单元测试,但我不知道如何进行。以这个示例生成器为例:classExample():defgeneratorExample(self):count=0forintinrange(1,100):count+=1yieldcountifcount>0:raiseRuntimeError,'anexampleerrorthatwillalwayshappen'我想做的是classtestExample(unittest.TestCase):deftest_generator

python - 为什么 self 不会自动传递给实例化后在对象上设置的方法?

classPerson():pass;defsay_hi(self):print'hii'me=Person()me.say_hi=say_hime.say_hi()self参数不是在python中自动传递的吗?为什么调用me.say_hi()会给出堆栈跟踪?Traceback(mostrecentcalllast):File"",line1,inTypeError:say_hi()takesexactly1argument(0given) 最佳答案 它不会按照您的方式传递。你必须这样做。importtypesme.say_hi=t

python - "local variable referenced before assignment"——只有功能?

采用以下代码:importsomethingdefFoo():something=something.SomeClass()returnsomething...这显然不是有效代码:UnboundLocalError:localvariable'something'referencedbeforeassignment...因为局部变量something被创建,但没有赋值,在=的RHS被评估之前。(例如,请参见thisrelatedanswer'scomment。)这对我来说似乎有点奇怪,但可以肯定的是,我会接受它。现在,为什么下面的代码有效?classFoo(object):someth

python - 类,字典, self ,初始化,参数?

classattrdict(dict):def__init__(self,*args,**kwargs):dict.__init__(self,*args,**kwargs)self.__dict__=selfa=attrdict(x=1,y=2)printa.x,a.yb=attrdict()b.x,b.y=1,2printb.x,b.y有人可以用文字解释前四行吗?我阅读了类和方法。但是这里看起来很困惑。 最佳答案 逐行解释:classattrdict(dict):这一行将类attrdict声明为内置dict类的子类。def__i

Python 迭代器——如何在新样式类中动态分配 self.next?

作为一些WSGI中间件的一部分,我想编写一个包装迭代器的python类,以在迭代器上实现关闭方法。当我尝试使用旧式类时,它工作正常,但当我使用新式类时,它会抛出TypeError。我需要做什么才能让它与新式类一起工作?例子:classIteratorWrapper1:def__init__(self,otheriter):self._iterator=otheriterself.next=otheriter.nextdef__iter__(self):returnselfdefclose(self):ifgetattr(self._iterator,'close',None)isnot

python - 如何使用 pprint 使用内置的 __str__(self) 方法打印对象?

我有一个Python脚本,它处理一个包含报告使用信息的.txt文件。我想找到一种使用pprint的pprint(vars(object))函数干净地打印对象属性的方法。脚本读取文件并创建Report类的实例。这是类(class)。classReport(object):def__init__(self,line,headers):self.date_added=get_column_by_header(line,headers,"DateAdded")self.user=get_column_by_header(line,headers,"LoginID")self.report=ge