相关疑难解决方法(0)

在Python中使用**kwargs的正确方法

**kwargs在默认值方面,在Python中使用的正确方法是什么?

kwargs返回字典,但设置默认值的最佳方法是什么,还是有一个?我应该只是作为字典访问它吗?使用get函数?

class ExampleClass:
    def __init__(self, **kwargs):
        self.val = kwargs['val']
        self.val2 = kwargs.get('val2')
Run Code Online (Sandbox Code Playgroud)

一个简单的问题,但我找不到好的资源.人们在我看过的代码中采用不同的方式,并且很难知道要使用什么.

python kwargs

415
推荐指数
11
解决办法
35万
查看次数

Pythonic方式检查是否存在某些东西?

这是非常基本的,但我编码并开始想知道是否有一种pythonic方法来检查是否存在某些东西.这是我如何做到的,如果它是真的:

var = 1
if var:
    print 'it exists'
Run Code Online (Sandbox Code Playgroud)

但是当我检查是否存在某些东西时,我经常这样做:

var = 2
if var:
    print 'it exists'
else:
    print 'nope it does not'
Run Code Online (Sandbox Code Playgroud)

如果我所关心的只是一种浪费,似乎是一种浪费,如果没有其他东西,有没有办法检查是否存在某些东西?

python if-statement

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

在Python 3.2中**kwargs和dict有什么区别?

似乎python的许多方面只是功能的重复.除了我在Python中的kwargs和dict中看到的冗余之外还有一些区别吗?

python syntax dictionary arguments

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

Django ForeignKey limit_choices_到一个不同的ForeignKey id

我正在尝试使用limit_choices_to限制Django Admin对ForeignKey的选择,但我无法弄清楚如何正确地做到这一点.

如果类别id为16,这段代码可以实现我想要的,但我无法弄清楚如何使用当前类别id而不是硬编码.

class MovieCategory(models.Model):    
    category = models.ForeignKey(Category)
    movie = models.ForeignKey(Movie)
    prefix = models.ForeignKey('Prefix', limit_choices_to={'category_id': '16'},
                               blank=True, null=True)
    number = models.DecimalField(verbose_name='Movie Number', max_digits=2,
                                 blank=True, null=True, decimal_places=0)
Run Code Online (Sandbox Code Playgroud)

有可能以某种方式引用ForeignKey类别的id吗?

python django

11
推荐指数
2
解决办法
8970
查看次数

简化`if'foo'在kwargs和kwargs ['foo']是真的:`

是否可以简化kwargs选项的布尔检查?

例如,foo我必须检查很多选项:

def foo(*args, **kwargs):
   if 'foo' in kwargs and kwargs['foo'] is True:
      do_something()
   if 'bar' in kwargs and kwargs['bar'] is True:
      do_something_else()
   ...
Run Code Online (Sandbox Code Playgroud)

一个可能的工作方法是通过增加更多复杂性来隐藏一些复杂性......

def parse_kwargs(kwords, **kwargs):
   keywords = {}
   for kw in kwords:
      keywords[kw] = True if kw in kwargs and kwargs['kw'] is True else False
   return keywords
Run Code Online (Sandbox Code Playgroud)

然后在我的主要功能:

def foo(*args, **kwargs):
   kw = parse_kwargs(**kwargs)

   if kw['foo']:
      do_something()
   if kw['bar']:
      do_something_else()
   ...
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以使用更简单的方法更少的样板...

python kwargs

4
推荐指数
1
解决办法
148
查看次数

标签 统计

python ×5

kwargs ×2

arguments ×1

dictionary ×1

django ×1

if-statement ×1

syntax ×1