草庐IT

delete_self

全部标签

python - 为什么 pythonistas 调用当前引用 "self"而不是 "this"?

Python是我最了解的语言,但奇怪的是我仍然不知道为什么我输入的是“self”而不是Java或PHP中的“this”。我知道Python比Java更老,但我不知道这是从哪里来的。特别是因为您可以使用任何名称而不是“self”:该程序可以正常工作。那么这个约定从何而来? 最佳答案 Xerox于1980年发布的Smalltalk-80使用了self。Objective-C(1980年代初期)在C上叠加Smalltalk功能,因此它也使用self。Modula-3(1988年)、Python(1980年代后期)和Ruby(1990年代中

python - 从装饰器访问 self

在unittest的setUp()方法中,我设置了一些self变量,稍后在实际测试中会引用这些变量。我还创建了一个装饰器来做一些日志记录。有没有一种方法可以让我从装饰器中访问那些self变量?为简单起见,我发布此代码:defdecorator(func):def_decorator(*args,**kwargs):#accessafromTestSamplefunc(*args,**kwargs)return_decoratorclassTestSample(unittest.TestCase):defsetUp(self):self.a=10deftearDown(self):#te

python - 从装饰器访问 self

在unittest的setUp()方法中,我设置了一些self变量,稍后在实际测试中会引用这些变量。我还创建了一个装饰器来做一些日志记录。有没有一种方法可以让我从装饰器中访问那些self变量?为简单起见,我发布此代码:defdecorator(func):def_decorator(*args,**kwargs):#accessafromTestSamplefunc(*args,**kwargs)return_decoratorclassTestSample(unittest.TestCase):defsetUp(self):self.a=10deftearDown(self):#te

python - 获取类型错误 : __init__() missing 1 required positional argument: 'on_delete' when trying to add parent table after child table with entries

我的sqlite数据库中有两个类,一个名为Categorie的父表和名为Article的子表.我首先创建了子表类并添加了条目。所以首先我有这个:classArticle(models.Model):titre=models.CharField(max_length=100)auteur=models.CharField(max_length=42)contenu=models.TextField(null=True)date=models.DateTimeField(auto_now_add=True,auto_now=False,verbose_name="Datedeparutio

python - 获取类型错误 : __init__() missing 1 required positional argument: 'on_delete' when trying to add parent table after child table with entries

我的sqlite数据库中有两个类,一个名为Categorie的父表和名为Article的子表.我首先创建了子表类并添加了条目。所以首先我有这个:classArticle(models.Model):titre=models.CharField(max_length=100)auteur=models.CharField(max_length=42)contenu=models.TextField(null=True)date=models.DateTimeField(auto_now_add=True,auto_now=False,verbose_name="Datedeparutio

Python - 为什么在类里面使用 "self"?

这两个类有何不同?classA():x=3classB():def__init__(self):self.x=3有什么明显的区别吗? 最佳答案 A.x是一个类变量。B的self.x是一个实例变量。即A的x在实例之间共享。使用可以修改的东西(如列表)更容易展示差异:#!/usr/bin/envpythonclassA:x=[]defadd(self):self.x.append(1)classB:def__init__(self):self.x=[]defadd(self):self.x.append(1)x=A()y=A()x.ad

Python - 为什么在类里面使用 "self"?

这两个类有何不同?classA():x=3classB():def__init__(self):self.x=3有什么明显的区别吗? 最佳答案 A.x是一个类变量。B的self.x是一个实例变量。即A的x在实例之间共享。使用可以修改的东西(如列表)更容易展示差异:#!/usr/bin/envpythonclassA:x=[]defadd(self):self.x.append(1)classB:def__init__(self):self.x=[]defadd(self):self.x.append(1)x=A()y=A()x.ad

python - 如何为容器对象实现 __iter__(self) (Python)

我已经编写了一个自定义容器对象。根据thispage,我需要在我的对象上实现这个方法:__iter__(self)但是,在跟进指向IteratorTypes的链接后在Python引用手册中,没有给出如何实现自己的示例。有人可以发布一个片段(或资源链接),说明如何做到这一点?我正在编写的容器是一个映射(即通过唯一键存储值)。dicts可以像这样迭代:fork,vinmydict.items()在这种情况下,我需要能够在迭代器中返回两个元素(一个元组?)。仍然不清楚如何实现这样的迭代器(尽管已经提供了几个答案)。有人可以详细说明如何为类似map的容器对象实现迭代器吗?(即像字典一样的自定义

python - 如何为容器对象实现 __iter__(self) (Python)

我已经编写了一个自定义容器对象。根据thispage,我需要在我的对象上实现这个方法:__iter__(self)但是,在跟进指向IteratorTypes的链接后在Python引用手册中,没有给出如何实现自己的示例。有人可以发布一个片段(或资源链接),说明如何做到这一点?我正在编写的容器是一个映射(即通过唯一键存储值)。dicts可以像这样迭代:fork,vinmydict.items()在这种情况下,我需要能够在迭代器中返回两个元素(一个元组?)。仍然不清楚如何实现这样的迭代器(尽管已经提供了几个答案)。有人可以详细说明如何为类似map的容器对象实现迭代器吗?(即像字典一样的自定义

python - 如何在 Python 中避免显式 'self'?

我一直在通过关注pygametutorials学习Python.其中我发现了关键字self的广泛使用,并且我主要来自Java背景,我发现我总是忘记输入self。例如,我会输入rect.centerx而不是self.rect.centerx,因为对我来说,rect已经是类(class)。对于这种情况,我能想到的Java并行方法是必须在所有对成员变量的引用前加上this。我是不是一直在为所有成员变量加上self前缀,还是有办法声明它们可以让我避免这样做?即使我的建议不是pythonic,我仍然想知道它是否可能。我已经查看了这些相关的SO问题,但它们并没有完全回答我所追求的:Python-w