Python属性()是否返回未列出的字段?

Python属性()是否返回未列出的字段?,python,django,Python,Django,我正在查看的代码来自django.contrib.auth.models.User def _get_message_set(self): import warnings warnings.warn('The user messaging API is deprecated. Please update' ' your code to use the new messages framework.', cat

我正在查看的代码来自
django.contrib.auth.models.User

def _get_message_set(self):
    import warnings
    warnings.warn('The user messaging API is deprecated. Please update'
                  ' your code to use the new messages framework.',
                  category=DeprecationWarning)
    return self.**_message_set**
message_set = property(_get_message_set)
--这个
\u message\u set
字段到底在哪里


我怀疑这里发生了某种自动排序的情况,但我不确定。

在Python中,不需要声明对象的属性。在您的例子中,它是在超类
models.Model
的构造函数中设置的


请注意,内部属性的前缀是下划线,而外部属性(恰好是属性)缺少下划线。

在Python中,不需要声明对象的属性。在您的例子中,它是在超类
models.Model
的构造函数中设置的

请注意,内部属性的前缀为下划线,而外部属性(恰好是属性)缺少下划线。

来源:

发件人:


在别的地方。你有没有为初学者检查过
\uuuuu init\uuuuuu
?这是哪个Django版本?其他地方。对于初学者,您是否检查了
\uuuuu init\uuuuuu
?这是哪个Django版本?似乎我需要备份一些步骤来更好地熟悉Python基础知识。这个模块的模式是否与Python当前的最佳实践一致?@Withnail好吧,这段代码摘录肯定是这样的,属性正是为类似的东西而设计的。但是,请记住,超类models.Model有些奇怪,因为它动态构造属性。对于Python新手,我不建议阅读它。坦率地说,
模型。Model
看起来很粗糙。Django模型为此使用元类。看到了,这让我感觉更好,因为前面的Python示例看起来很容易阅读和直观,而这个Django模块让我很困惑。看来我需要备份一些步骤来更好地熟悉Python的基础知识。这个模块的模式是否与Python当前的最佳实践一致?@Withnail好吧,这段代码摘录肯定是这样的,属性正是为类似的东西而设计的。但是,请记住,超类models.Model有些奇怪,因为它动态构造属性。对于Python新手,我不建议阅读它。坦率地说,
模型。Model
看起来很粗糙。Django模型为此使用元类。看到了,这让我感觉更好,因为前面的Python示例看起来很容易阅读和直观,而这个Django模块让我相当困惑。
class Message(models.Model):
    """
    The message system is a lightweight way to queue messages for given
    users. A message is associated with a User instance (so it is only
    applicable for registered users). There's no concept of expiration or
    timestamps. Messages are created by the Django admin after successful
    actions. For example, "The poll Foo was created successfully." is a
    message.
    """
    user = models.ForeignKey(User, related_name='_message_set')
    message = models.TextField(_('message'))

    def __unicode__(self):
        return self.message