【问题标题】:Python class declarative auto set name based on variable name基于变量名的Python类声明式自动设置名称
【发布时间】:2020-01-06 18:12:10
【问题描述】:

英文版(谷歌繁体对不起):

我受到 Django / SQLalchemy 和 Peewee ORM 的启发,但我永远无法理解它如何在声明性类中设法将字段名称作为所调用类的名称。

例子:

from django.db import models

class Musician (models.Model):
     first_name = models.CharField (max_length = 50)
     last_name = models.CharField (max_length = 50)
     instrument = models.CharField (max_length = 100)

基本上CharField类会在初始化时自动设置name='first_name'属性

谁能帮我理解一下?

法语版本

Bonjour, j'ai essayer de m'inspirer des orms django / sqlalchemy et peewee mais je n'arrive jamais à comprendre comment dans une classe declarative il arrivait à prendre le nom du field en name de la classe appelé。

p>

示例:

from django.db import models

class Musician(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    instrument = models.CharField(max_length=100)

En gros, la classe CharField va automatiquement mettre l'attribut name='first_name' lors de l'initialisation

Est ce que quelqu'un peut m'aider à comprendre ?

【问题讨论】:

    标签: python django-models orm


    【解决方案1】:

    Python 元类。你有一个类构造函数,它查看类的所有属性,然后做一些事情(比如分配一个名称属性等)。

    我在 Google 上搜索的第一件事看起来不错,但搜索元类或声明性基类,您会找到更多信息。在我看来,对于这样的答案来说,信息太多了。

    https://realpython.com/python-metaclasses/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 2015-03-09
      • 1970-01-01
      • 2014-06-23
      相关资源
      最近更新 更多