Python中文
首页
教程
问答
标签
搜索
登录
注册
避免Pylint警告E1101:'实例。。没有。。具有动态属性的类的成员
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>想象一个函数,它使用<code>setattr</code>动态地向对象添加属性。这样做的原因是我想将一些外部结构(例如给定的参数树)映射到一个对象:</p> <pre><code>my_object = SomeClass() apply_structure(my_object, some_descriptor) my_object.device1.enabled = True </code></pre> <p>从技术上讲,这是可行的,但Pylint当然正确地抱怨“device1”不是<code>SomeClass</code>的成员。</p> <p>我可以禁用警告,但那将是不好的(因为我仍然希望在所有情况下,当由于拼写错误等原因属性不存在时获得警告)。</p> <p>是否有一种通用且合法的(Pylint-proof)方法可以动态地将成员添加到不会导致警告的对象中?</p> <p>或者:我可以只对一个<em>对象</em>而不是行/块/文件禁用Pylint吗?</p> <p><strong>说明</strong>:</p> <p>您可能想知道,当我计划稍后以硬编码方式访问这些属性时,为什么我应该动态地为对象配备成员属性。</p> <p>原因是:我有一个程序的动态部分(在那里进行修饰)和一个静态部分,对于特定的<em>场景</em>,它是<em>专用的</em>。因此,我也可以为这个场景创建一个静态类,但在很多情况下,这个类会被过度破坏。</p> <p>以下<em>专用</em>代码可能允许访问可能连接到某些总线的设备的某些参数:</p> <pre><code>class MyDeviceHandler: on_get_some_subtree_element(self): return _some_internal_value on_set_some_subtree_element(self, value): _some_internal_value = value dev = MyDeviceHandler() decorate_object_with_device_structure(dev, 'some/attached/device') dev.some.subtree.element = 5 <--- will call the set-callback x = dev.some.subtree.element <--- will call the get-callback </code></pre> <p>因此<code>'some/attached/device'</code>后面的结构可能是任意的,非常复杂,我不想在类结构中重现它。</p> <p>消除此警告的一种方法是创建/访问基于<code>dict</code>的树:</p> <pre><code>dev['some']['subtree']['element'] = 5 </code></pre> <p>但这很难写,也不好读——我这样做只是为了让Pylint安静下来。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>为了提供对我有效的答案-正如<a href="https://stackoverflow.com/users/2085149/the-compiler">The Compiler</a>建议的那样,您可以在项目中为有问题的类添加规则<code>.pylintrc</code>:</p> <pre><code>[TYPECHECK] ignored-classes=Fysom,MyClass </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何将python输出重定向到python控制台和Windows中的文本文件
6 回答
如何将Python运行时嵌入运行在Windows上的R包中
10 回答
如何将python进程作为另一个Windows us运行
3 回答
如何将Python进程的输出用Python管道传输?
6 回答
如何将Python进程的输出重定向到Rust进程?
7 回答
如何将python连接到Azure云并创建Azure数据工厂
8 回答
如何将Python连接到Db2
1 回答
如何将python连接到IBMDB2?
7 回答
如何将Python连接到microsoftaccess数据库文件?
8 回答
如何将python连接到MySQL服务器
9 回答
如何将Python连接到Node.js?
8 回答
如何将python连接到Oracle Application Express
4 回答
如何将Python连接到PostgreSQL
1 回答
如何将Python连接到Postgres服务器?
5 回答
如何将Python连接到SAS Enterprise Guide(EG)服务器
7 回答
如何将Python连接到Spark会话并保持RDDs的Ali
9 回答
如何将python连接到sqlite3并在上填充多行
8 回答
如何将python连接到使用docker运行的cassandra
10 回答
如何将python退格应用于字符串
8 回答
如何将python逻辑应用到tkinter GUI中?这是一个简单的GET请求程序
8 回答