小编Jam*_*pam的帖子

print语句如何创建局部变量

问题在这篇文章的最后.

第一个片段:空局部变量字典.

def outer():
    x = 1
    def inner():
        print "Local variables: %s" % locals()
    return inner()
print outer()
Run Code Online (Sandbox Code Playgroud)

输出:局部变量:{}

第二个片段:在inner()函数内打印并创建局部变量条目.

def outer():
    x = 1
    def inner():
        print x
        print "Local variables: %s" % locals()
    return inner()
print outer()
Run Code Online (Sandbox Code Playgroud)

输出:

1
Local variables: {'x': 1}
Run Code Online (Sandbox Code Playgroud)

第三个片段:来自内部函数内部的del x:

def outer():
    x = 1
    def inner():
        print x
        print "Local variables: %s" % locals()
        del x
    return inner()
print outer()
Run Code Online (Sandbox Code Playgroud)

输出:

>>> outer()
Traceback (most recent call last): …
Run Code Online (Sandbox Code Playgroud)

python python-internals

22
推荐指数
2
解决办法
983
查看次数

为什么None是python中最小的?

我从python中学到了什么:

None is frequently used to represent the absence of a value

当我放入一个列表并用数字和字符串排序.我得到了以下结果,这意味着它是最小的数字?

相反:

>>> sorted([1, 2, None, 4.5, (-sys.maxint - 1), (sys.maxint - 1), 'abc'], reverse=True)
['abc', 9223372036854775806, 4.5, 2, 1, -9223372036854775808, None]
>>>
Run Code Online (Sandbox Code Playgroud)

正常排序:

>>> sorted([1, 2, None, 4.5, (-sys.maxint - 1), (sys.maxint - 1), 'abc'])
[None, -9223372036854775808, 1, 2, 4.5, 9223372036854775806, 'abc']
>>>
Run Code Online (Sandbox Code Playgroud)

python排序函数如何使用None?

python python-internals

22
推荐指数
1
解决办法
1319
查看次数

python列表是存储对象还是对象的引用?

整数的大小是24个字节,char的大小是38个字节,但是当我插入列表时,列表的大小不会反映我插入的对象的确切大小.所以,现在我徘徊列表是持有对象的引用而对象是存储在内存中的某个地方.

>>> sys.getsizeof(1)
24
>>> sys.getsizeof('a')
38
>>> sys.getsizeof([])
72
>>> sys.getsizeof([1])
80
>>> sys.getsizeof(['a'])
80
>>> sys.getsizeof('james') 
42
>>>
Run Code Online (Sandbox Code Playgroud)

python list

12
推荐指数
1
解决办法
3418
查看次数

在线程内使用Flask current_app.logger

我正在使用current_app.logger,当我尝试登录内部线程时,它说"在应用程序上下文之外工作".如何从线程中运行的方法记录消息?

def background():
    current_app.logger.debug('logged from thread')

@app.route('/')
def index():
    Thread(target=background).start()
    return 'Hello, World!'
Run Code Online (Sandbox Code Playgroud)
Exception in thread Thread-16:
Traceback (most recent call last):
  File "/usr/lib64/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run()
  File "/usr/lib64/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "/home/sapam/demo.py", line 57, in background
    current_app.logger.critical('test')
  File "/home/sapam/.virtualenvs/demo/lib/python3.5/site-packages/werkzeug/local.py", line 343, in __getattr__
    return getattr(self._get_current_object(), name)
  File "/home/sapam/.virtualenvs/demo/lib/python3.5/site-packages/werkzeug/local.py", line 302, in _get_current_object
    return self.__local()
  File "/home/sapam/.virtualenvs/demo/lib/python3.5/site-packages/flask/globals.py", line 51, in _find_app
    raise RuntimeError(_app_ctx_err_msg)
RuntimeError: Working outside of application context.

This typically means …
Run Code Online (Sandbox Code Playgroud)

python logging multithreading flask

10
推荐指数
1
解决办法
4254
查看次数

带有空格的Python字符串,最后没有空格和不变性

我了解到,在一些一成不变的类,__new__可能会返回一个现有实例-这是什么int,str以及tuple各类有时小的值做.

但为什么以下两个片段的行为不同?

最后有一个空格:

>>> a = 'string '
>>> b = 'string '
>>> a is b
False
Run Code Online (Sandbox Code Playgroud)

没有空间:

>>> c = 'string'
>>> d = 'string'
>>> c is d
True
Run Code Online (Sandbox Code Playgroud)

为什么空间带来了差异?

python string cpython immutability python-internals

9
推荐指数
2
解决办法
408
查看次数

元组拆包与正常分配有何不同?

这个链接我了解到了

当前实现为-5到256之间的所有整数保留一个整数对象数组,当您在该范围内创建一个int时,实际上只返回对现有对象的引用

但是当我尝试为我的会话提供一些示例时,我发现它在赋值和元组解包时表现不同.

这是片段,

Python 2.7.2 (default, Oct 11 2012, 20:14:37)
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a,b = 300,300
>>> a is b
True
>>> c = 300
>>> d = 300
>>> c is d
False
>>>  
Run Code Online (Sandbox Code Playgroud)

python cpython python-2.7

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

如何修复"无法解析环境生产"错误?

这是我的小傀儡片段:当我执行此片段时,我收到以下错误:

错误:无法解析环境生成:无法匹配/home/test.pp:8

$vendor = generate("/usr/bin/lsscsi")

if defined($vendor) {
    if $vendor =~ /LSI/{
        $d_multipath = [{
            vendor => 'LSI',
            product => 'INF-01-00',
            path_checker => 'rdac',
            path_selector => 'round-robin 0',
       }]
    }
}
else {
    notify {'faield-lsscsi':
        message  => "ERROR: failed to execute lsscsi to get the scsi vendor type",
        loglevel => critical,
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙指出吗?

puppet

7
推荐指数
1
解决办法
2万
查看次数

静默安装适用于 Windows 的 Mercurial 模块

我正在尝试以静默方式安装以下软件包Mercurial-2.2.1.win-amd64-py2.6.exe以将其添加到我的 Puppet 清单中。

我已经尝试过 /s /q 但没有结果。

python puppet

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

在python单表单元格中添加多行

我不确定如何绘制如下表,我尝试使用prettytable但无法在一个单元格中放置多行。

注意:行数应基于字符串的数目,因此我想在每行中放置一些n字符串。

有人可以帮忙吗?

+---- +-------------------+-------------------------------------------------------+
| Id  | Name              | Comment                                               |
+-----+-------------------+-------------------------------------------------------+
| 1   |  Alvina Skiles    | Dolor qui rerum est sed. Sed ipsa repudiandae et      |
|     |                   | Non explicabo voluptas impedit rerum dignissimos.     |
|     |                   | Minima voluptatibus sint voluptates similique.'       |
+-----+-------------------+-------------------------------------------------------+
| 2   |  Chasity Lakin    | Nesciunt ea voluptatem rerum eos rerum ut soluta      |
|     |                   | Animi totam rerum fugiat consectetur odio et          |
|     |                   | repellendus                                           | …
Run Code Online (Sandbox Code Playgroud)

python prettytable

5
推荐指数
2
解决办法
2279
查看次数

如果输入为空则以非零退出

我正在尝试使用 JQ 解析我的curl 输出并检查退出代码,因此当我的curl 输出为空时,JQ 返回0 退出代码。

例如:

$ echo "" | jq '.key'
$ echo $?
0
Run Code Online (Sandbox Code Playgroud)

如何让这个返回 1 或某个非零值?

exit-code exitstatus jq

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