我在我的一个班级中使用了这个__str__方法,但在我看来,我的代码中的python约定看起来有点太长了,而autopep并没有给我任何提示。
所以我想知道键入它的方法是什么 pythonic 。
我需要断行,因为解决方案和表格形状分别为52和52x52。
input = '4'
start_day = int(input)
days = ["0","1","2","3","4","5","6"]
days_before = []
# Loop
for day in days:
if int(day) > start_day: # Either print
print day
else:
days_before.append(day) # Or dump to second list
else: # When finished
for day in days_before: # Print second list
print day
答案 0 :(得分:3)
// This pointer is local to the translation unit, and is an
// implementation detail. It's not used anywhere else.
static QPointer<QNetworkAccessManager> globalManager;
// The global accessor method
QNetworkAccessManager *nMgr() {
Q_ASSERT(!qApp || QThread::currentThread() == qApp->thread());
return globalManager;
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QNetworkAccessManager mgr;
globalManager = &mgr;
...
}
如果您在使用多行字符串时不想在输出中添加额外的标签,则需要删除代码中的标签。
def __str__(self):
pattern = '''
Cost solution: {}
Solution: {}
Table: {}
'''
return pattern.format(self.cost, self.solution, self.table)
答案 1 :(得分:1)
您可以使用def __str__(self):
return "Cost solution: {}\nSolution: {}\n\nTable {}".format(self.cost, self.solution, self.table)
方法以更多 pythonic 的方式组合字符串,但它仍然很长。
datetime
如果您需要使用反斜杠,可以在格式字符串结束后将其拆分为两行。
答案 2 :(得分:1)
Python 3.6引入了f-strings,允许短字符串&amp;格式
class foo:
def __init__(self):
self.cost = 12
self.solution = "easy"
self.table = "no"
def __str__(self):
return f"Cost: {self.cost}\nSolution: {self.solution}\nTable: {self.table}"
f = foo()
print(str(f))