小编ghi*_*man的帖子

Python迭代器:iglob()的迭代器在glob()的列表中提供了什么?

鉴于这段代码:

from glob import glob, iglob

for fn in glob('/*'):
    print fn

print ''

for fn in iglob('/*'):
    print fn
Run Code Online (Sandbox Code Playgroud)

阅读glob 的文档我看到glob()返回一个基本的文件列表,iglob是一个Iterator.但是,我能够迭代两者,并且每个文件返回相同的文件列表.

我已经阅读了有关Iterator的文档,但它还没有真正了解这个主题!

那么iglob()返回一个Iterator会给我带来glob()的列表有什么好处呢?我是否能从我的老朋友那里获得额外的功能?

python iterator

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

使用Django 1.7创建部分索引

Django 1.7提及类的文档RunSQL可用于在表上创建部分索引.我有一个表,我想的组合title,blogcategory是唯一的.但是,如果未提供类别,则标题和博客的组合仍应是唯一的.

class Post(models.Model):
    title = models.CharField(max_length=200)
    blog = models.ForeignKey(Blog)
    category = models.ForeignKey(Category, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

我可以使用部分索引实现此约束(如下面显示的SQL).如果我使用Django 1.7迁移,我在哪里添加此代码?

CREATE UNIQUE INDEX idx1 
  ON Post (title, blog_id, category_id) 
  WHERE category_id IS NOT NULL;

CREATE UNIQUE INDEX idx2 
  ON Post (title, blog_id)
  WHERE category_id IS NULL;
Run Code Online (Sandbox Code Playgroud)

django django-models django-orm django-1.7 django-migrations

13
推荐指数
1
解决办法
3126
查看次数

是否可以在不使用变量的情况下解包元组?

我在我的程序中的路径上使用os.path.split()函数来获取文件的文件名和路径名,然后将它们传递给另一个方法,但我当前的解决方案看起来相当丑陋:

path = os.path.split(somefile)
some_class(path[0], path[1])
Run Code Online (Sandbox Code Playgroud)

是否可以在调用some_class时以更干净的方式解压缩路径元组?就像是:

some_class(os.path.split(somefile).unpack())
Run Code Online (Sandbox Code Playgroud)

或者我应该简单地以另一种方式去做?也许是更加pythonic的方式?

python tuples iterable-unpacking

11
推荐指数
1
解决办法
1548
查看次数

是否可以在JCalendar JDateChooser字段上检测日期更改?

我想在JDateChooser字段中检测日期何时更改,以便我可以更新另一个字段.

这可能吗?如果是这样我应该在哪里开始?我已经查看了文档,遗憾的是没有添加类似ActionListener或StateChangeListener的方法(我的第一个想法).

java swing jcalendar jdatechooser

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

如何获取Applescript中的循环索引?

我有一个不同长度字符串的列表,我正在循环:

set my_list to {"abc", "defg", "hi", "jklmno"}

repeat with the_item in my_list
    -- get index of the_item
end repeat
Run Code Online (Sandbox Code Playgroud)

我如何在循环时找到the_item的索引?

applescript loops list

9
推荐指数
1
解决办法
6520
查看次数

给出生日期如何计算下一个生日?

在Postgres数据库中给出此模式:

CREATE TABLE person (
    id serial PRIMARY KEY,
    name text,
    birth_date date,
);
Run Code Online (Sandbox Code Playgroud)

我如何在今天之后查询表格以获取每个人下一个生日的日期?

例如,如果鲍勃birth_date是2000-06-01,那么他的下一个生日将是2016-06-01.

注意:我不是在寻找birth_date+一个预定义的interval,而是一个人出生的下一个周年纪念日.

我在Python中编写了等价物:

def next_birthday(self):
    today = datetime.date.today()
    next_birthday = self.birth_date.replace(year=today.year)
    if next_birthday < today:
        next_birthday = next_birthday.replace(year=today.year + 1)
    return next_birthday
Run Code Online (Sandbox Code Playgroud)

但是我想看看Postgres能否以更高效的方式做到这一点.

postgresql

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

在Git中,如何在不手动指定文件的情况下暂存我刚刚传播的文件?

我经常对一个文件进行区分,确定它是我将要播放git add /long/path/to/file的文件然后必须运行以手动指定文件.

通常的工作流程将遵循:

git status

"oooh改变"

git diff /long/path/to/changed/file

"是的,我记得 - 承诺时间!"

git add /long/path/to/changed/file

显然,这不是世界上最困难的事情,它只是有点单调乏味.我知道我也可以进入交互模式,但这从来都不适合我的工作流程.

所以我正在寻找一些神奇的unix或git命令,在那里我可以说"嘿,那个文件我只是差异 - 请它上演!".

在Git或Bash中是否存在类似的东西?或者我需要在bash脚本中构建它?

git bash

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

Ruby:如何从另一个文件导入变量?

我正在尝试创建一个与罗盘一起使用的本地配置文件,以便我们可以在开发人员的机器上处理不同的导入路径.到目前为止,我已经尝试在异常块中导入文件,如果它不存在,那么进一步使用该变量:

local_config.rb

VENV_FOLDER = 'venv'
Run Code Online (Sandbox Code Playgroud)

config.rb

VENV_FOLDER = '.'
begin
  require 'local_config.rb'
rescue LoadError
end
puts VENV_FOLDER
Run Code Online (Sandbox Code Playgroud)

一般情况下我是一个Python开发人员,所以我预计进口到改变的值VENV_FOLDERvenv,但它仍然是.事后.

有没有办法以local_config.rb这样的方式导入它覆盖的值VENV_FOLDER

ruby

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

Django:如何从特定用户的管理表单中删除字段?

我的管理员看起来像这样(没有排除变量):

class MovieAdmin(models.ModelAdmin)
    fields = ('name', 'slug', 'imdb_link', 'start', 'finish', 'added_by')
    list_display = ('name', 'finish', 'added_by')
    list_filter = ('finish',)
    ordering = ('-finish',)
    prepopulated_fields = {'slug': ('name',)}

    form = MovieAdminForm

    def get_form(self, request, obj=None, **kwargs):
        form = super(MovieAdmin, self).get_form(request, obj, **kwargs)
        form.current_user = request.user
        return form

admin.site.register(Movie, MovieAdmin)
Run Code Online (Sandbox Code Playgroud)

表格:

class MovieAdminForm(forms.ModelForm):

    class Meta:
        model = Movie

    def save(self, commit=False):
        instance = super(MovieAdminForm, self).save(commit=commit)
        if not instance.pk and not self.current_user.is_superuser:
            if not self.current_user.profile.is_manager:
                instance.added_by = self.current_user.profile
        instance.save()
        return instance
Run Code Online (Sandbox Code Playgroud)

我正在尝试删除用户的added_by字段,因为我更愿意从会话中填充它.我尝试过以下方法:

forms django django-admin

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

如何捕获Python类中不存在的嵌套变量的查找?

我试图劫持对我的班级的任何调用,并将它们传递给我在课堂上选择的方法.

我的班级到目前为止:

class Klass(object):
    def __getattribute__(self, name):
        if name == '_dummy_func':
            return object.__getattribute__(self, name)
        return object.__getattribute__(self, 'dummy_func')

    def _dummy_func(self):
        print 'dummy func called!'
Run Code Online (Sandbox Code Playgroud)

我这样做时有效:

cls = Klass()
cls.foo()
Run Code Online (Sandbox Code Playgroud)

但尝试这样做时会摔倒:

cls = Klass()
cls.foo.bar()
Run Code Online (Sandbox Code Playgroud)

因为dummy_func没有属性bar.

我试着__getattribute__()通过检查是否name这里描述的函数来捕获这种嵌套行为,但它是一个字符串而不是实际变量.

有没有办法从里面抓住这个Klass

python

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