小编Lar*_*gas的帖子

为什么全局变量是邪恶的?

我试图找到一个很好的来源,解释为什么global在python(以及一般的编程)中使用被认为是不好的做法.有人可以指点我或解释一下吗?

python side-effects global-variables

100
推荐指数
3
解决办法
5万
查看次数

可以从列表理解中返回两个列表吗?

是否可以从列表理解中返回两个列表?嗯,这显然不起作用,但是类似于:

rr, tt = [i*10, i*12 for i in xrange(4)]
Run Code Online (Sandbox Code Playgroud)

所以rrtt都是从搜索结果列表i*10i*12分别.非常感谢

python list-comprehension

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

只需要索引:枚举或(x)范围?

如果我只想在循环中使用索引,我应该更好地range/xrange结合使用该函数len()

a = [1,2,3]
for i in xrange(len(a)):
    print i 
Run Code Online (Sandbox Code Playgroud)

还是enumerate?即使我根本不使用p

for i,p in enumerate(a):
    print i    
Run Code Online (Sandbox Code Playgroud)

python enumerate range

28
推荐指数
3
解决办法
9322
查看次数

为什么用括号导入语句?

最近看到像这样的进口

from module import (function, another_function, 
                    another_function)
Run Code Online (Sandbox Code Playgroud)

看起来这样做是为了能够import通过多行来扩展语句.在这种情况下,我通常只是这样导入

from module import function, another_function, \
            another_function
Run Code Online (Sandbox Code Playgroud)

在这种情况下括号究竟做了什么,他们认为是不好的做法?

python import parentheses

25
推荐指数
1
解决办法
5216
查看次数

如何使用admin注册多个模型?

如果我想用管理员注册我的模型,我必须这样做:

#admin.py
admin.site.register(models.About)
Run Code Online (Sandbox Code Playgroud)

但是对于多个模型,你不能做这样的事情:

models = (models.Project, models.Client, models.About)
for m in models:
   admin.site.register(m)
Run Code Online (Sandbox Code Playgroud)

首先:为什么不呢??其次:想象一下有很多模型都应该可以从管理界面访问.你是如何以通用的方式做到这一点的?

django django-admin

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

JS传单:如何将(Geo-)json ID传递给click事件?

我的django Web应用程序应该执行以下操作:将Geojson对象传递给视图,使用传单映射点,并在用户单击点标记时显示一些其他信息.我对js不是那么熟悉所以我被绑定了正确的数据到click事件.这是一个geojson对象示例.如何通过我的活动访问"id" click

var geojsonFeature = {'geometry':
                          {'type': 'MultiPoint', 
                          'coordinates': [[4.939, 52.33], [4.9409, 52.33]]
                          }, 
                     'type': 'Feature', 
                     'properties': 
                        {'id': '52','popupContent': 'id=52'}
                     };
Run Code Online (Sandbox Code Playgroud)

将geojson对象添加到地图中..

var gj = L.geoJson(geojsonFeature, {
    pointToLayer: function (feature, latlng) {
    return L.circleMarker(latlng, geojsonMarkerOptions);
    }}).addTo(map);
Run Code Online (Sandbox Code Playgroud)

并且 - on()点击....

gj.on('click', function(evt) {
   alert(id) // well, this is where I need help
});
Run Code Online (Sandbox Code Playgroud)

注意:我不想使用类似的东西,bindPopup(feature.properties.popupContent)因为我想打开一个新窗口,使用数据库中的一些额外数据调用不同的django视图.

javascript onclick geojson leaflet

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

使用虚拟环境会影响Web应用程序的性能吗?

我有一个django应用程序启动并运行.虽然应用程序托管在共享托管平台上,但我从未遇到任何性能问题.

提供者问我最近使用python的virtualenv.从那时起,性能一直非常差,但我无法检测CPU使用率或任何其他统计信息的变化.

所以我的问题是:使用虚拟环境会影响性能吗?如果有,怎么样?

python django virtualenv

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

import next()python 2.5

我正在使用itertools的成对配方的略微修改版本,看起来像这样

def pairwise(iterable):
    "s -> (s0,s1), (s1,s2), (s2, s3), ..."
    a, b = tee(iterable)
    next(b, None)
    return zip(a, b) 
Run Code Online (Sandbox Code Playgroud)

现在我发现我需要使用python 2.5运行代码,其中next()函数抛出以下异常:

<type 'exceptions.NameError'>: global name 'next' is not defined

有没有办法使用python 2.5的next()?或者我如何修改函数以使其无论如何工作?

python next

6
推荐指数
1
解决办法
1239
查看次数

我可以更改 python 首先查找模块的顺序吗?

假设我有一个脚本,假设my_tools.py我作为模块导入。但my_tools.py保存两次:在C:\Python27\Lib 执行导入的脚本运行的同一目录中。

my_tools.py我可以更改 python首先查找的顺序吗?也就是说,首先检查它是否存在C:\Python27\Lib,如果存在,则进行导入?

python import

6
推荐指数
1
解决办法
4576
查看次数

Python:如何循环不同深度的列表列表?

我有这样的数据结构(列表的实际列表非常长且深度不同).我事先知道他们的深度.

 a=( [1,2], [2,3,[4,5]] )
 b=( [[1,2],[2,3]] )
Run Code Online (Sandbox Code Playgroud)

想要循环遍历每个列表.怎么做到最好?

我不想最终做这样的事情:

for l in a:
    if instance(l, list):
        for ll in l:
            if instance(ll, list): 
                ...
Run Code Online (Sandbox Code Playgroud)

python recursion for-loop

6
推荐指数
1
解决办法
2412
查看次数