Mở rộng câu trả lời Django của Tadeck ở trên, việc sử dụng 'lớp Meta:' trong Django cũng chỉ là Python bình thường.
Lớp nội bộ là vùng tên thuận tiện cho dữ liệu được chia sẻ giữa các phiên bản lớp (vì thế tên Meta cho 'siêu dữ liệu' nhưng bạn có thể gọi nó là bất kỳ thứ gì bạn thích). Trong thời gian ở Django nó thường chỉ đọc những thứ cấu hình, không có gì để ngăn chặn bạn thay đổi nó là:
In [1]: class Foo(object):
...: class Meta:
...: metaVal = 1
...:
In [2]: f1 = Foo()
In [3]: f2 = Foo()
In [4]: f1.Meta.metaVal
Out[4]: 1
In [5]: f2.Meta.metaVal = 2
In [6]: f1.Meta.metaVal
Out[6]: 2
In [7]: Foo.Meta.metaVal
Out[7]: 2
Bạn có thể khám phá nó trong Django trực tiếp quá ví dụ:
In [1]: from django.contrib.auth.models import User
In [2]: User.Meta
Out[2]: django.contrib.auth.models.Meta
In [3]: User.Meta.__dict__
Out[3]:
{'__doc__': None,
'__module__': 'django.contrib.auth.models',
'abstract': False,
'verbose_name': <django.utils.functional.__proxy__ at 0x26a6610>,
'verbose_name_plural': <django.utils.functional.__proxy__ at 0x26a6650>}
Tuy nhiên, trong Django bạn có nhiều có khả năng muốn khám phá thuộc tính _meta là một đối tượng Tùy chọn được tạo bởi mô hình metaclass khi một mô hình được tạo ra. Đó là nơi bạn sẽ tìm thấy tất cả thông tin 'meta' của lớp django. Trong Django, Meta chỉ được sử dụng để chuyển thông tin vào quá trình tạo đối tượng Tùy chọn _meta.
Nguồn
2013-08-08 04:23:23
Tiêu đề hỏi về meta meta, nhưng câu hỏi dường như hỏi về meta Django - bạn đang hỏi về cái nào? – ckhan