>>> a = "?" # chinese
>>> b = unicode(a,"gb2312")
>>> a.__class__
<type 'str'>
>>> b.__class__
<type 'unicode'> # b is unicode
>>> a
'\xce\xd2'
>>> b
u'\u6211'
>>> c = u"?"
>>> c.__class__
<type 'unicode'> # c is unicode
>>> c
u'\xce\xd2'
Run Code Online (Sandbox Code Playgroud)
b
并且c
都是unicode,但>>> b
输出u'\u6211'
和>>> c
输出u'\xce\xd2'
,为什么?
我正在阅读PyMOTW线程帖子
第一个例子:
import threading
def worker():
"""thread worker function"""
print 'Worker'
return
threads = []
for i in range(5):
t = threading.Thread(target=worker)
threads.append(t)
t.start()
Run Code Online (Sandbox Code Playgroud)
我运行它,得到结果:
Worker
-Worker
Worker
-Worker
Worker
Run Code Online (Sandbox Code Playgroud)
的-
是space
,每一次的格式将是差异
但我不知道为什么会这样space
?
有时它会输出empty line
,为什么?
在Fedora15中,我最初使用的是vim,我的~/.vimrc
文件中定义了所有设置.我最近安装了vim-X11,现在已经过渡到gvim了.我定义了一个~/.gvimrc
文件,用以下行来设置字体:
set guifont=Bitstream_Vera_Sans_Mono:h11:cANSI
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.有两件奇怪的事情:
行号,颜色方案等其他设置正常,但字体设置不起作用.相反,我每次都需要在工具栏中设置它们来更改字体:"编辑 - >选择字体".
每次我选择"编辑 - >启动设置"时,它都会打开~/.vimrc
文件而不是~/.gvimrc
文件.
一个简单的例子:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import multiprocessing
class Klass(object):
def __init__(self):
print "Constructor ... %s" % multiprocessing.current_process().name
def __del__(self):
print "... Destructor %s" % multiprocessing.current_process().name
if __name__ == '__main__':
kls = Klass()
Run Code Online (Sandbox Code Playgroud)
与错误做时运行current_process
在__del__
:
Constructor ... MainProcess
Exception AttributeError: "'NoneType' object has no attribute 'current_process'" in <bound method Klass.__del__ of <__main__.Klass object at 0x7f5c34e52090>> ignored
Run Code Online (Sandbox Code Playgroud)
如果我更改变量名称:
als = Klass()
Run Code Online (Sandbox Code Playgroud)
它得到了正确的结果:
Constructor ... MainProcess
... Destructor MainProcess
Run Code Online (Sandbox Code Playgroud)
我尝试了很多变量名,有些没问题,有些错误.
为什么不同的实例名称会导致多处理模块为None __del__
?
我写了一个基于SimpleHTTPServer和SocketServer的预览函数,KeyboardInterrupt
当我进入Ctrl-C
停止服务器时我捕获异常:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import SimpleHTTPServer
import SocketServer
class Reuse_TCPServer(SocketServer.TCPServer):
timeout = 1
allow_reuse_address = True
def preview(port=8000):
try:
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = Reuse_TCPServer(("", port), Handler)
except OSError as e:
print("Could not listen on port {}".format(port))
sys.exit(getattr(e, 'exitcode', 1))
try:
httpd.serve_forever()
except (KeyboardInterrupt, SystemExit) as e:
print("Shutting down server")
httpd.socket.close()
if __name__ == "__main__":
preview()
Run Code Online (Sandbox Code Playgroud)
但大多数情况下,如果我打开localhost:8000并立即(几秒钟)输入'Ctrl-C',它将首先显示该消息然后关闭套接字:
127.0.0.1 - - [16/Apr/2014 22:20:42] code 404, message File not found …
Run Code Online (Sandbox Code Playgroud) 我想用Django写博客,博客中会有一些tags
,但是我不知道哪种模型类型可以实现此功能。
是否有可以在django中存储标签的模型类型?
例子:
» git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: a
modified: b
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: a
Run Code Online (Sandbox Code Playgroud)
如果我修改了一个名为 a 的文件,并将它的一部分添加到index
.
我只想提交索引中的文件 a,既不包含 b 也不包含工作目录中的 a。
我使用的方式是使用git commit -p
和进入n
不阶段。或者git commit -p file
选择我想要的部分。
但是如果文件 a 中的部分已经添加到索引中,有没有更好的方法来直接提交文件 a 只在索引部分?
补充:
我认为这可能是对 git …
我尝试使用多处理进行日志记录,发现在 Windows 下,我会在子进程中获得不同的根记录器,但在 Linux 下没问题。
测试代码:
主要.py:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import multiprocessing
from mymod import func
def m_func():
server = multiprocessing.Process(target=func, args=())
server.start()
logger = logging.getLogger()
#print 'in global main: ', logger
if __name__ == '__main__':
print 'in main: ', logger
m_func()
Run Code Online (Sandbox Code Playgroud)
mymod.py:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
logger = logging.getLogger()
# print 'in global func: ', logger
def func():
print 'in func: ', logger
Run Code Online (Sandbox Code Playgroud)
在Linux下,结果是:
in main: <logging.RootLogger object …
Run Code Online (Sandbox Code Playgroud) 我读过了
由于staticmethod
无法访问该类的实例,我不知道它和global function
?
什么时候应该使用staticmethod
?能举个好例子吗?
我有
try:
a = list().append('hello')
Run Code Online (Sandbox Code Playgroud)
但a
为NoneType
try:
b = list()
b.append('hello')
Run Code Online (Sandbox Code Playgroud)
并且b
是一种list
类型
我认为list()
返回一个列表对象,list().append('hello')
并将使用返回列表进行追加,但为什么值为a
None
?