PyCharm 2.7(或PyCharm 3)是否支持自定义docstring和doctest存根?如果是这样,如何编写这种特定类型的自定义扩展?
我目前的项目已经标准化使用Google Python样式指南(http://google-styleguide.googlecode.com/svn/trunk/pyguide.html).我喜欢PyCharm的docstring支持,但现在只有两种支持的格式是epytext和reStructureText.我想并且愿意自己写一个PyCharm插件,它创建一个以Google或Numpydoc风格格式化的文档注释存根(https://pypi.python.org/pypi/sphinxcontrib-napoleon/).这里特别重要的是结合PyCharm与其他两种文档类型的类型推断能力.
我刚才意识到Java JDK 1.7下的AWT/Swing(从JDK 7u15开始)不支持Apple Macbook Pros上的Retina显示.例如,Netbeans几乎无法忍受在Retina显示器上使用JDK 1.7运行超过几分钟.
这已经有所解决的问题StackExchange 这里,和引用一个具体的职位:
Apple的Java 6 JRE将支持HiDPI,但Oracle Java 7 JRE目前不支持它.它在Java 8的最新开发版本下也无法运行.在Retinia MacBook上,Swing和JavaFX应用程序模糊不清.这就是IntelliJ仍在Java 6下运行的原因.
我的问题比上述线程的OP所要求的更具体.
我的雇主不到一个月就在其所有应用程序中使用Swing.出于几个原因,我们有兴趣从Java 6迁移到Java 7.在过去的几天里,另一个开发人员(在Windows上)将我们的平台移到Java 7.当我运行视网膜Macbook Pro时,我注意到了当我拉出代码的最新稳定分支时的问题.
我是Java的新手,在社区中有不到一年的经验,因此我的问题是:Java社区是否会对此问题做出相应的响应,或者在Swing之前是否会出现大量延迟(几个月到一年或更长时间)在Java 7中与Apple Retina显示器兼容吗?
在编写python doctests时,如何在测试中的字符串中正确引入换行符?这是一个简单的例子:
def remove_newlines(text):
"""
>>> remove_newlines("line1 \n"
... "still line 1\r"
... "now line2 \n"
... "more line2\n")
line1 still line1
now line2 more line2
"""
return text.replace('\n', '')
import doctest
doctest.run_docstring_examples(remove_newlines, globals())
Run Code Online (Sandbox Code Playgroud)
其输出是:
Traceback (most recent call last):
...
ValueError: line 3 of the docstring for NoName has inconsistent leading whitespace: '"'
Run Code Online (Sandbox Code Playgroud) 为什么Guido(或其他任何人)决定python --version打印到stderr而不是stdout?只是好奇用例是什么使得标准错误比标准错误更合适.
我在这里显然遗漏了一些东西; 为什么在这个小示例应用程序中没有添加"文件"菜单?
import sys
from PySide.QtGui import *
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setWindowTitle('Test')
layout = QHBoxLayout()
self.widget = QWidget()
self.widget.setLayout(layout)
self.setCentralWidget(self.widget)
self.exitAction = QAction('Exit', self, shortcut=QKeySequence.Quit, triggered=self.close)
self.fileMenu = self.menuBar().addMenu('File')
self.fileMenu.addAction(self.exitAction)
app = QApplication(sys.argv)
w = Window()
w.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
编辑:
好吧,看起来这实际上是一个unicode问题.这是另一个示例应用程序:
from __future__ import unicode_literals, print_function, division
import sys
from PySide.QtCore import *
from PySide.QtGui import *
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.dummyAction = QAction(self.tr('dummy'), self, triggered=self.dummy)
self.gameMenu = self.menuBar().addMenu(self.tr('ddddummy'))
print (self.tr('dummy'))
self.gameMenu.addAction(self.dummyAction)
layout = QHBoxLayout()
self.widget …Run Code Online (Sandbox Code Playgroud) 在不关心返回值的情况下执行完整生成器理解的最pythonic方法是什么,而操作纯粹是基于副作用的?
一个例子是基于这里讨论的谓词值来拆分列表.想到编写生成器理解是很自然的
split_me = [0, 1, 2, None, 3, '']
a, b = [], []
gen_comp = (a.append(v) if v else b.append(v) for v in split_me)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我能想出的最佳解决方案是使用 any
any(gen_comp)
Run Code Online (Sandbox Code Playgroud)
然而,对于没有看过这种模式的人来说,这并不是很明显.是否有更好的方法来循环完全理解而不保留内存中的所有返回值?