小编zjm*_*126的帖子

classmethod在这段代码中做了什么?

在django.utils.tree.py中:

def _new_instance(cls, children=None, connector=None, negated=False):
        obj = Node(children, connector, negated)
        obj.__class__ = cls
        return obj
    _new_instance = classmethod(_new_instance)
Run Code Online (Sandbox Code Playgroud)

我不知道classmethod这段代码中的内容是什么.有人可以解释它的作用以及如何使用它吗?

python

46
推荐指数
2
解决办法
3万
查看次数

如何使用python填充0列表

我想从另一个列表获得固定长度列表,如:

a = ['a','b','c']
b = [0,0,0,0,0,0,0,0,0,0]
Run Code Online (Sandbox Code Playgroud)

我希望得到一个这样的清单:['a','b','c',0,0,0,0,0,0,0].换句话说,如果len(a) < len(b),我想用列表a中的值填充列表到列表的b长度b,有点类似于什么str.ljust.

这是我的代码:

a=['a','b','c']
b = [0 for i in range(5)]
b = [a[i] for i in b if a[i] else i]

print a
Run Code Online (Sandbox Code Playgroud)

但它显示错误:

  File "c.py", line 7
    b = [a[i] for i in b if a[i] else i]
                                    ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我能做什么?

python list

45
推荐指数
3
解决办法
8万
查看次数

Python等效的setInterval()?

Python有类似于JavaScript的功能setInterval()吗?

谢谢

python setinterval

37
推荐指数
7
解决办法
4万
查看次数

__getattr__和getattr之间有什么关系?

我知道这段代码是对的:

class A:   
    def __init__(self):
        self.a = 'a'  
    def method(self):   
        print "method print"  

a = A()   
print getattr(a, 'a', 'default')   
print getattr(a, 'b', 'default')  
print getattr(a, 'method', 'default') 
getattr(a, 'method', 'default')()   
Run Code Online (Sandbox Code Playgroud)


这是错的:

# will __getattr__ affect the getattr?

class a(object):
    def __getattr__(self,name):
        return 'xxx'

print getattr(a)
Run Code Online (Sandbox Code Playgroud)

这也是错的:

a={'aa':'aaaa'}
print getattr(a,'aa')
Run Code Online (Sandbox Code Playgroud)


我们应该在哪里使用这些功能(__getattr__getattr)?

python getattr

31
推荐指数
3
解决办法
1万
查看次数

__contains__做了什么,可以调用__contains__函数

这是我的代码:

class a(object):
    d='ddd'
    def __contains__(self):
        if self.d:return True
b=a()
print b.contains('d')  # error
print contains(b,'d')  # error
Run Code Online (Sandbox Code Playgroud)

python

30
推荐指数
5
解决办法
6万
查看次数

这是最好的Javascript键盘事件库.(热键,快捷键)

我想创建一个使用很多键盘事件的bbs论坛,

那么哪个是最好的键盘事件库,

谢谢

javascript javascript-events

29
推荐指数
3
解决办法
1万
查看次数

如何使用JavaScript隐藏滚动条

如何隐藏滚动条?我想这样做是因为滚动条不好看.

overflow:hidden 没用,因为我的div元素有很多其他元素.

所以设置overflow并不能解决我的问题.

javascript css jquery

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

这段代码的含义是什么:"print >> sys.stderr"

print >> sys.stderr, "Error in atexit._run_exitfuncs:"
Run Code Online (Sandbox Code Playgroud)

为什么要在前面打印'>>' sys.stderr

谢谢.

python syntax

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

如果没有实现"next",这个类如何实现"__iter__"方法?

我在django.template中有以下代码:

class Template(object):
    def __init__(self, template_string, origin=None, name='<Unknown Template>'):
        try:
            template_string = smart_unicode(template_string)
        except UnicodeDecodeError:
            raise TemplateEncodingError("Templates can only be constructed from unicode or UTF-8 strings.")
        if settings.TEMPLATE_DEBUG and origin is None:
            origin = StringOrigin(template_string)
        self.nodelist = compile_string(template_string, origin)
        self.name = name

    def __iter__(self):
        for node in self.nodelist:
            for subnode in node:
                yield subnode

    def render(self, context):
        "Display stage -- can be called many times"
        return self.nodelist.render(context)
Run Code Online (Sandbox Code Playgroud)

我困惑的部分如下.这种__iter__方法有什么用?我找不到任何相应的next方法.

def __iter__(self):
        for node in self.nodelist:
            for subnode …
Run Code Online (Sandbox Code Playgroud)

python iterator yield

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

21
推荐指数
3
解决办法
4万
查看次数