小编you*_*ufu的帖子

在包的__init__.py中导入子模块时出现奇怪的命名空间污染

main.py:

    import package
Run Code Online (Sandbox Code Playgroud)

包/ __ init__.py:

    # use function to split local and global namespace
    def do_import():
        print globals().keys()
        print locals().keys()

        import foo as mod

        print locals().keys()
        print globals().keys()

    do_import()
Run Code Online (Sandbox Code Playgroud)

包/ foo.py:

    print 'Hello from foo'
Run Code Online (Sandbox Code Playgroud)

执行main.py将输出如下:

['__builtins__', '__file__', '__package__', '__path__', '__name__', 'do_import', '__doc__']
[]
Hello from foo
['mod']
['__builtins__', '__file__', '__package__', '__path__', '__name__', 'foo', 'do_import', '__doc__']
Run Code Online (Sandbox Code Playgroud)

import__init__.py没有按预期工作.请注意,全局命名空间有一个'foo',它只能绑定到本地'mod'

即使是 exec "import foo as mod" in {'__name__': __name__, '__path__': __path__} 无法阻止全局命名空间被修改

怎么会发生这种情况?

python

8
推荐指数
1
解决办法
654
查看次数

高度如何:自动与行高相互作用:0和不同的字体大小

HTML:

<div>
  <span>Some text here...</span>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

div {
    line-height: 0;
}
Run Code Online (Sandbox Code Playgroud)

div得到height: 0在这种情况下.


但是,当我指定一个更大的font-size

span {
    font-size: 100px;
}
Run Code Online (Sandbox Code Playgroud)

虽然有line-height: 0,但是div得到的非零高度.

您可以访问https://jsfiddle.net/cjvpLfv2/查看演示

编辑:在https://jsfiddle.net/cjvpLfv2/12/添加一个演示

如果我申请font-size: 100px到两个spandiv中,div得到height: 0px再次


我的问题是如何height: auto交互line-height,并font-size在这个简单的情况下(块级容器只有一个内联元素)

css font-size

5
推荐指数
1
解决办法
627
查看次数

标签 统计

css ×1

font-size ×1

python ×1