我有一个python文件,其中包含h1img以及strong等函数,用于设置文本的样式。这些功能的定义如下:

def _wrapTag(tag, text, **attributes):
    out = _createTag(tag, **attributes)
    out += text
    out += "</" + tag + ">"
    return out

def _createTag(tag, **attributes):
    out = "<" + tag
    if attributes:
        for attr, value in attributes:
            out += " " + attr + "=\"" + value + "\""
    out += ">"
    return out

def h2(text, **attributes):
    return _wrapTag("h2", text, **attributes)

在理想情况下,要用类创建一个div,我将调用modal,但是div(content, class="modal")是一个受限关键字。有没有什么方法可以绕过这一点而不向class添加特殊情况?

最佳答案

PEP 8处理的标准方法,即添加尾随下划线:
单尾随下划线:按惯例用于避免与Python关键字冲突,例如。
Tkinter.Toplevel(master, class_='ClassName')
这是一个常见的解决办法,不会让任何人感到惊讶。你可以在你的代码中实现它,比如:

def _createTag(tag, **attributes):
    out = "<" + tag
    if attributes:
        for attr, value in attributes.items():
            out += " " + attr.rstrip('_') + "=\"" + value + "\""
    out += ">"
    return out

以便它自动从任何和所有属性中删除额外的下划线。然后你可以打电话给:
>>> h2('contents', class_='myh2tag', id_='contenttag')
'<h2 class="myh2tag" id="contenttag">contents</h2>'

并解决两个单独的Python名称空间冲突,而不将它们作为特例处理。

关于python - 允许在方法签名中使用 token “类”作为命名参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13406107/

10-14 17:43
查看更多