【问题标题】:Python syntax in django tutorialDjango 教程中的 Python 语法
【发布时间】:2015-04-26 17:54:16
【问题描述】:

我正在阅读教程 [这里] (https://docs.djangoproject.com/en/1.8/intro/tutorial01/)

而且无法理解这个 python 语法:

>>> q = Question(question_text="What's new?", pub_date=timezone.now())

这适用于我的 Python 2.7。以前从未见过。

这是问题类:

class Question(models.Model):
        question_text = models.CharField(max_length=200)
        pub_date = models.DateTimeField('date published')

【问题讨论】:

  • 对象创建?命名参数?
  • @BenjaminGruenbaum 不完全是,见我上面的编辑。
  • 这就是所谓的ORM,这是一个代替sql语句的对象
  • @Abdelouahab 关于构造函数实际工作的更多细节?
  • 问题继承models.Model。模型有一个 kwarg 构造函数。

标签: python django django-models


【解决方案1】:

python 中的这种语法称为named arguments

例如

class Myclass:
    def __init__(self, *l, **d):
        print d


>>>Myclass(arg1="val1", arg2="val2")
{'arg1': 'val1', 'arg2': 'val2'}

这样 Django models.Model 取*args**kargs

【讨论】:

    【解决方案2】:

    Django models.Model*args**kargs,并使用setattr 来初始化对象值。

    【讨论】:

      猜你喜欢
      • 2013-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      相关资源
      最近更新 更多