草庐IT

descriptor

全部标签

成功解决BUG:OSError: [Errno 9] Bad file descriptor(Python BUG)

成功解决BUG:OSError:[Errno9]Badfiledescriptor文章目录异常解读解决思路错误复现其他学习资料异常解读在Python代码编写过程中,会出现如下错误:OSError:[Errno9]Badfiledescriptor该错误翻译为中文是:将一个无效的文件句柄(-1)传递给os.close()函数,它试图关闭该文件句柄。由于该文件句柄无效,会引发TypeError,错误消息将显示为"Invalidfilehandle:[WinError6]"(前提是在Windows操作系统上运行该代码)实际编码错误如下图所示。解决思路解决该BUG很容易,只需要检查一下文件句柄是否是正

python - 描述符 : Precendence of Attribute access through __getattribute()__

我无法理解以下优先级在__getattribute__()特殊方法和Descriptors的上下文中意味着什么我在topic("Precedence")-topic("Desriptors")下阅读了本书CorePythonProgramming3次了,还是过不去..谁能解释一下这些优先级是什么,用在什么地方??类属性数据描述符实例属性非数据描述符默认为__getattr__()我还阅读了pythondocumentation,我在那里找到了以下声明:-Forinstancebindings,theprecedenceofdescriptorinvocationdependsonthe

python3 : bind method to class instance with . __get__(),它有效,但为什么呢?

我知道如果你想给一个类实例添加一个方法你不能像这样做一个简单的赋值:>>>defprint_var(self):#methodtobeaddedprint(self.var)>>>classMyClass:var=5>>>c=MyClass()>>>c.print_var=print_var这确实会导致print_var表现得像一个普通函数,所以self参数不会有他的典型含义:>>>c.print_var>>>c.print_var()Traceback(mostrecentcalllast):File"",line1,inc.print_var()TypeError:print_va

python - 如何为属性的延迟初始化创建装饰器

我想创建一个像属性一样工作的装饰器,只是它只调用装饰函数一次,并且在后续调用中始终返回第一次调用的结果。一个例子:defSomeClass(object):@LazilyInitializedPropertydeffoo(self):print"Nowinitializing"return5>>>x=SomeClass()>>>x.fooNowinitializing5>>>x.foo5我的想法是为此编写一个自定义装饰器。所以我开始了,这就是我走了多远:classLazilyInitializedProperty(object):def__init__(self,function):s

python - 为什么我在使用 Google Protocol Buffers 时会看到 "cannot import name descriptor_pb2"错误?

当使用我们的protobuf类生成的Python代码时,我们得到这个错误:cannotimportnamedescriptor_pb2等效的C++生成的代码工作得很好,所以看起来我们的实际原型(prototype)定义没有问题。当我尝试导入我们的类时出现此错误,如下所示:importsyssys.path.append('..\path\to\generated')sys.path.append('..\contrib\protobuf\python')fromfoobar_pb2importFooBar附加系统路径是否正确?我在protobuf\python\google\proto

python - 从调试器打印 python 中所有可用的元组

我意识到一个python脚本中存在内存泄漏。最开始占用25MB左右,15天后超过500MB。我遵循了许多不同的方法,但无法像python新手那样深入到问题的根源...最后,我得到了以下内容objgraph.show_most_common_types(limit=20)tuple37674function9156dict3935list1646wrapper_descriptor1468weakref888builtin_function_or_method874classobj684method_descriptor551type533instance483Kind470getset

python - 在 Python 描述符中创建动态文档字符串

我正在尝试动态生成一些类定义(用于包装C++扩展)。下面的描述符工作正常,除了当我尝试使用help()访问字段的文档字符串时,它为描述符而不是它自己的字段提供默认文档。但是,当我执行help(classname)时,它会检索传递给描述符的文档字符串:classFieldDescriptor(object):def__init__(self,name,doc='Nodocumentationavailable.'):self.name=nameself.__doc__=docdef__get__(self,obj,dtype=None):ifobjisNoneanddtypeisnotN

python - 在 Python 中,为什么属性优先于实例属性?

Thisarticle描述了Python在执行o.a时如何查找对象的属性。优先顺序很有趣-它寻找:作为数据描述符的类属性(最常见的是属性)实例属性任何其他类属性我们可以使用下面的代码来确认这一点,该代码创建了一个对象o,它具有一个实例属性a,它的类包含一个同名的属性:classC:def__init__(self):self.__dict__['a']=1@propertydefa(self):return2o=C()print(o.a)#Prints2为什么Python使用这种优先顺序而不是“原始”顺序(实例属性优先于所有类属性)?Python的优先顺序有一个明显的缺点:它使属性查找

python - 如何在 python 中使用 opencv 模块可视化描述符匹配

我正在尝试将opencv与python结合使用。我在opencv2.4的C++版本中编写了描述符(SIFT、SURF或ORB)匹配代码。我想用python将这段代码转换为opencv。我找到了一些关于如何在C++中使用opencv函数的文档,但是在python中的许多opencv函数我找不到如何使用它们。这是我的python代码,我目前的问题是我不知道如何在python中使用opencvc++的“drawMatches”。我找到了cv2.DRAW_MATCHES_FLAGS_DEFAULT但我不知道如何使用它。这是我使用ORB描述符进行匹配的python代码:im1=cv2.imrea

python - 使用带槽的 Python 描述符

我希望能够在具有槽优化的类中使用python描述符:classC(object):__slots__=['a']a=MyDescriptor('a')def__init__(self,val):self.a=val我遇到的问题是如何实现描述符类,以便能够将值存储在调用描述符对象的类实例中。通常的解决方案如下所示,但不会起作用,因为在C类中调用“slots”时不再定义“dict”:classMyDescriptor(object):__slots__=['name']def__init__(self,name_):self.name=name_def__get__(self,instan