草庐IT

self-documenting

全部标签

python - self.attr 在 unittest.TestCase 中的测试之间重置

我想使用unittest.TestCase类的self.attr,但它似乎在测试之间并不持久:importunittestclassTestNightlife(unittest.TestCase):_my_param=0deftest_a(self):print'testA=%d'%self._my_paramself._my_param=1deftest_b(self):print'testB=%d'%self._my_paramself._my_param=2if__name__=="__main__":unittest.main()这给出了以下输出:testA=0testB=0u

python - 如何在 python 中模拟 self ?

考虑以下代码。我想模拟self.get_value,它在foo.verify_client()中调用importunittestimportmockdefmock_get_value(self,value):return'client'classFoo:def__init__(self):passdefget_value(self,value):returnvaluedefverify_client(self):client=self.get_value('client')returnclient=='client'classtestFoo(unittest.TestCase):@mo

python - 有没有人在 PyCharm 中有以下库的 "Documentation URL"s :

我是PyCharm和其他JetbrainsIDE的“快速文档”功能的粉丝,但它需要知道每个库的特定“文档URL”,该URL在Preferences>Tools>PythonExternal下设置文档设置。我想知道是否有人为以下任何库解决了这个问题:tensorflowtorchMatplotlib海运Pandas 最佳答案 这些对我有用(使用PyCharm2018.2.4):Matplotlib模块名称:matplotlibURL/路径模式:https://matplotlib.org/api/_as_gen/{module.nam

python - 获取类的 self.__module__ 而不管如何导入

我有一个库类,其中取决于它是如何导入的,一种依赖于self.__module__的方法来识别更改行为-取决于我是相对导入还是绝对导入。有没有办法强制类的self.__name__属性绝对返回自身?我意识到一个解决方案是强制每个人以相同的方式导入子类,但想知道是否有一种方法可以从库的角度强制执行它。概要结构我在库中有一个模块project/mylib/foo.pyLibraryClassdefget_name(self):return"%s.%s.%s"%\(self.__module__,self.__class__.__name__,self.some_init_property)p

Python ctypes.WinDLL 错误,找不到 _dlopen(self._name, mode)

ctypes.WinDLL("C:\ProgramFiles\AHSDK\bin\ahscript.dll")Traceback(mostrecentcalllast):File"",line1,inFile"C:\Python26\lib\ctypes\__init__.py",line353,in__init__self._handle=_dlopen(self._name,mode)WindowsError:[Error126]Thespecifiedmodulecouldnotbefound我该如何解决?我在C:\Python26\lib\ctypes\__init__.py中

python - "Never invent such names; only use them as documented."谁?

我读了PEP8想知道(虚构的)我创建一个名称如__foo__的对象是否是个好主意。PEP8关于__double_leading_and_trailing_underscore__是这样说的:Neverinventsuchnames;onlyusethemasdocumented.我的问题是:谁?我是一名程序员。我为其他程序员编写API。Python是由程序员实现的。实现的语言引用是由程序员或至少是前程序员编写的,使用我的API的程序员将编写一些可能会或可能不会被其他程序员使用的东西。现在展开了,当PEP8说“永远不要发明这样的名字”时,他们指的是哪个程序员?有人显然被鼓励发明这样的名字

python - NameError : name 'self' is not defined, 即使它是?

谁能帮我理解为什么这会给我一个错误?错误是“NameError:未定义名称'self'”。我的代码中有一个类似的类,它工作正常吗?我正在使用“xlrd”,team是对workbook.sheet_by_name的引用。classRollout:def__init__(self,team,name):self.team=teamself.name=nameself.jobs={}self.start_row=1self.last_row=self.team.nrowsforiinrange(self.start_row,self.last_row):try:self.jobs[i-1]=

python - super(type(self), self) 的快捷方式

我经常在重写子类中的方法时这样做:defmethod_x(self):x=super(type(self),self).method_x()[Someextracode]returnx我的问题是:super(type(self),self)有捷径吗? 最佳答案 不要那样做:如果super可以只使用type(self)作为它的第一个参数,那么它就不会被写成在第一名。您必须在此处传递实际类,而不是表达式,如果类已被子类化,表达式可能会发生变化。super的第一个参数需要是包含当前方法定义的类,因为您要告诉super在碱基列表中的何处开始

python - 为什么 self 只是一个约定而不是真正的 Python 关键字?

据我所知,self只是一个非常强大的约定,并不是Python中真正的保留关键字。Java和C#将this作为关键字。我真的觉得很奇怪,他们没有在Python中为它做一个保留关键字。这背后有什么原因吗? 最佳答案 因为self只是一个函数的参数,就像任何其他参数一样。例如,下面的调用:a=A()a.x()基本上转换为:a=A()A.x(a)不使self成为保留字也有一个幸运的结果,对于类方法,您可以将第一个参数重命名为其他名称(通常是cls)。当然,对于静态方法,第一个参数与调用它的实例没有关系,例如:classA:defmethod

“ Document.Ready()”功能未在Chrome Mobile(Android)上启动

我有jQuery-2.4.4.min.js在标签之前打电话给我,但是当我写类似的内容时:jQuery(document).ready(function(){alert('hi,world.');});当然,在我的电脑上,它被触发了,但是在十个不同的Android设备上,它却没有。这纯粹是HTML/CSS/jQuery渲染网站(没有电话盖或其他任何网站)。我的目标是在攻击之后让按钮进行AJAX请求,但我什至无法测试,因为.dready()函数根本没有在移动Chrome上启动。官方CDN正在提供jQuery,任何帮助将不胜感激。尝试两者:$(function(){alert('hi,world.'