我们有似乎并不需要__init__
众多蟒类,初始化它们空的或者是完全可以接受的,甚至最好。 PyLint似乎认为这是一件坏事。我错过了一些洞察,为什么没有__init__
是一种难闻的气味?或者我应该压制这些警告并克服它?为什么PyLint会提示没有__init__?
18
A
回答
11
什么是您使用这些类呢?
如果它们只是一组不需要维护任何状态的函数,则不需要__init__()
,但将所有这些函数移动到它们自己的模块中会更有意义。
如果他们保持状态(他们有实例变量),那么你应该有一个__init__()
使这些变量可以被初始化。即使您在创建类时从不为它们提供值,但定义它们以使您的方法调用不引用可能存在或可能不存在的实例变量通常是一个好主意。
话虽这么说,如果你不需要一个__init__()
,随意忽略警告。
编辑:根据您的评论,你似乎很好用的AttributeError你会在初始化之前引用变量。这是对你的类进行编程的完美方式,所以在这种情况下,忽略来自PyLint的警告是合理的。
1
通常你至少会使用__init__()
方法来初始化实例变量。如果你没有这样做,那么通过一切手段关掉那个警告。
相关问题
- 1. 为什么pylint会评估自己?
- 2. pylint超类错误__init__
- 3. 为什么Pylint说numpy.random没有'普通'成员,因为它呢?
- 4. 为什么__init__在__new__之后没有被调用有时
- 5. 为什么'setup.py develop'允许导入没有'__init__.py'的目录?
- 6. 为什么Pylint不像内置函数?
- 7. 为什么输入[]没有提交?
- 8. 为什么工具栏没有提升?
- 9. 为什么_site文件有时会显示提交?
- 10. 为什么这个提升没有解救,什么会纠正它,以便它?
- 11. Rust为什么没有工会?
- 12. 为什么没有安全提示当我运行我的.exe?
- 13. 为什么virtualenv没有设置我的终端提示符?
- 14. 为什么Chrome中没有一个工具提示?
- 15. 为什么我的Git Bash for Windows没有提示?
- 16. 为什么提示是没有得到初始化
- 17. 程序什么时候什么都没有提示
- 18. NSTableView没有显示我的数据。为什么会发生?
- 19. 为什么pylint没有在列表中检测到缺少成员函数(E1103)?
- 20. 为什么我会在__init__.py文件中放入python代码
- 21. 为什么这个函数不会在__init__方法中触发?
- 22. 为什么搜索没有显示
- 23. 为什么项目没有显示
- 24. 为什么我的JTable没有显示?
- 25. 为什么边框没有显示?
- 26. 为什么我的NSBezierPath没有显示?
- 27. 为什么我的块没有显示?
- 28. Xcode - 为什么没有显示警告?
- 29. WPF,Canvas,FormattedText.BuildGeometry - 为什么没有显示?
- 30. 为什么Popup没有显示?
做这些类没有属性可言,还是你创建对象后添加属性? – delnan 2012-02-01 17:48:28
要么。在前一种情况下,我可以看到,这本身就是一种难闻的气味,但不是我现在不想进入。在后一种情况下,如果我在有意义的初始化之前尝试使用它,我宁愿有Attribute Exception。 – Pete 2012-02-01 17:50:55
你会有一些代码和pylint输出显示吗?由于某种原因,Pylint经常抱怨__init__。如果真的没有,那么它需要一个修复:) – sthenault 2012-02-02 08:29:22