我已经读过在python
中有三种编码多行导入的方法使用斜杠:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text, \
LEFT, DISABLED, NORMAL, RIDGE, END
复制意见:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text
from Tkinter import LEFT, DISABLED, NORMAL, RIDGE, END
括号:
from Tkinter import (Tk, Frame, Button, Entry, Canvas, Text,
LEFT, DISABLED, NORMAL, RIDGE, END)
这些陈述是否有推荐的格式或更优雅的方式?
答案 0 :(得分:125)
我个人在导入多个组件时使用括号,并按字母顺序对它们进行排序。像这样:
from Tkinter import (
Button,
Canvas,
DISABLED,
END,
Entry,
Frame,
LEFT,
NORMAL,
RIDGE,
Text,
Tk,
)
这样做的另一个好处是可以轻松查看每次提交或PR中添加/删除的组件。
总的来说,虽然这是个人喜好,但我建议你选择最适合自己的方式。
答案 1 :(得分:13)
您的示例似乎源于PEP 328。在那里,括号 - 符号是针对这个问题提出的,所以我可能会选择这个。
答案 2 :(得分:3)
我会使用packages
section中的括号表示法,并在括号前后添加换行符:
import { Component, OnInit,Input } from '@angular/core';
@Component({
selector: 'sub-menu',
template: `
<div *ngFor="let menu of menus">
<a [routerLink]="['menu.link']">{{menu.name}} </a>
</div>
`
})
export class StepComponent implements OnInit {
@Input() menus: any[] = [];
constructor() {
....
}
ngOnInit() { }
}
这是PEP328使用的格式:
from Tkinter import (
Tk, Frame, Button, Entry, Canvas, Text,
LEFT, DISABLED, NORMAL, RIDGE, END
)
答案 3 :(得分:-3)
通常使用Tkinter,可以使用from Tkinter import *
,因为模块只会导出明显小部件的名称。
PEP 8没有列出这种情况的任何约定,所以我想由你来决定什么是最好的选择。这完全取决于可读性,因此请选择任何明确表示您从单个模块导入内容的内容。
由于所有这些名称都在您的范围内提供,我个人认为选项2是最清晰的,因为您可以看到最好的导入名称。然后,您甚至可以将其拆分为可能将这些名称组合在一起。在您的示例中,我可以将Tk
,Frame
和Canvas
分别放在一起,同时将Button
和Text
分开,因为它们是较小的组件一个观点。