草庐IT

self-referencing

全部标签

python - 为什么要对 django 1.7+ 使用 __unicode__(self) 方法?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭7年前。Improvethisquestion我是django和sql的新手。我正在学习的教程将def__unicode__(self)放在每个模型类上?这是对documentation的引用但是看完还是不明白有什么用?classProject(models.Model):name=models.CharField(max_length=300)def__unicode__(self):returnself.nameclassTask(mod

python - 如何在没有 self 的情况下访问类范围变量?

所以我有一个类,我将其用作本地命名空间。我在类中有一些静态函数,但它们无法访问类范围变量。这是为什么?classFoo:foo_string="Iamafoo"@staticmethoddeffoo():printfoo_string>>>Foo.foo()[StackTrace]NameError:globalname'foo_string'isnotdefined有什么想法吗? 最佳答案 Python不会让类变量以这种方式落入范围,有两种方法可以做到这一点,第一种是使用类方法:@classmethoddeffoo(cls):pr

python - 类定义中 self.__dict__ = self 的含义

我正在尝试理解以下代码片段:classConfig(dict):def__init__(self):self.__dict__=selfself.__dict__=self这行的目的是什么?我想它用简单地返回对象本身的东西覆盖了默认的__dict__函数,但是由于Config继承自dict我一直无法找出与默认行为的任何差异。 最佳答案 将字典self分配给__dict__允许属性访问和项目访问:>>>c=Config()>>>c.abc=4>>>c['abc']4 关于python-类定

python - python 方法如何自动接收 'self' 作为第一个参数?

考虑这个Python策略模式示例(改编自示例here)。在这种情况下,备用策略是一个函数。classStrategyExample(object):def__init__(self,strategy=None):ifstrategy:self.execute=strategydefexecute(*args):#Iknowthatthefirstargumentforamethod#mustbe'self'.Thisisjustforthesakeof#demonstrationprintlocals()#alternatestrategyisafunctiondefalt_strat

python - Tornado:我可以在异步 RequestHandler 中调用 self.finish() 后运行代码吗?

我正在使用Tornado。我有一堆异步请求处理程序。他们中的大多数人异步地完成工作,然后将工作结果报告给用户。但我有一个处理程序,其工作是简单地告诉用户他们的请求将在未来的某个时间点得到处理。我完成HTTP连接,然后做更多的工作。这是一个简单的例子:classAsyncHandler(tornado.web.RequestHandler):@tornado.web.asynchronousdefget(self,*args,**kwargs):#firstjusttelltheusertogoawayself.write("Yourrequestisbeingprocessed.")s

python - 使用 pyCharm 从 "user"重构为 "self.user"

我想将变量从本地范围移动到对象级别。新代码应该使用self.user而不是像以前那样使用user:classFoo(object):deftest_foo(self):user=User()...user.do()新代码应该是这样的:classFoo(object):deftest_foo(self):self.user=User()#Icanremovethislinebyhand...self.user.do()我试图重构>>从user重命名为self.user但pyCharm说:“插入的标识符无效”如何使用pyCharm重构它? 最佳答案

python - 为什么内置函数的__self__返回它所属的内置模块?

方法有一个属性,__self__,当底层函数被调用时,它保存要传递的实例。显然,内置函数也是如此。在Python3中,它们持有模块对象:>>>len.__self__>>>sys.getrefcount.__self__#alsoforotherbuiltinmodules另一方面,在Python2中,它们持有None:>>>type(len.__self__)>>>sys.getrefcount.__self__有谁知道为什么这里会出现差异?除此之外,为什么这些甚至有一个__self__而不像Python级别的模块函数缺少__self__属性:>>>frompprintimportp

python - 检查 self.__class__ 的目的是什么?

检查self.__class__的目的是什么?我找到了一些创建抽象接口(interface)类的代码,然后检查它的self.__class__是否是它自己,例如classabstract1(object):def__init__(self):ifself.__class__==abstract1:raiseNotImplementedError("Interfacescan'tbeinstantiated")这样做的目的是什么?是检查类是否是自身的类型?代码来自NLTK的http://nltk.googlecode.com/svn/trunk/doc/api/nltk.probabil

python - OpenCV ORB 描述符 : TypeError: Incorrect type of self (must be 'Feature2D' or its derivative)

我遵循了这个简单的OpenCVFeatureMatchingexample正是:importcv2img=cv2.imread('box.png',0)#queryImageorb=cv2.ORB()#InitiateORBdetector#findthekeypointsanddescriptorswithORBkp1,des1=orb.detectAndCompute(img,None)出现以下错误:TypeError:Incorrecttypeofself(mustbe'Feature2D'oritsderivative)我正在使用OpenCV3.3.1

python - 为什么从`__iadd__`返回除“self”之外的任何东西?

python的documentationonthemethodsrelatedtothein-placeoperators类似于+=和*=(或者,正如它所说的,增加的算术赋值)有以下说法:这些方法应该尝试就地执行操作(修改self)并返回结果(可能是self,但不一定是self)。如果未定义特定的方法,则增强的赋值将返回到普通方法。我有两个密切相关的问题:如果文档指定,如果实现了这些方法,那么它们应该只在适当的地方进行工作,那么为什么需要从这些方法返回任何东西呢?为什么在实现了__iadd__的情况下,增广的赋值操作符不简单地执行冗余赋值?在什么情况下,从增广的赋值方法返回self之外