class names 是 python 中的对象吗?
Are class names objects in python?
我正在学习 python 并且我开始阅读 Django 框架。在示例中,这是我发现的:
class Person(models.Model):
name = models.CharField(max_length=128)
def __str__(self): # __unicode__ on Python 2
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
def __str__(self): # __unicode__ on Python 2
return self.name
代码的作用并不重要。我的问题是关于函数 ManyToManyField(Person, through='Membership')
。我们将 class 名称传递给函数。
为什么允许? class NAMES 对象在 python 中吗?
是 classes
是 Python 中的对象。 python 中的每个实体都继承自基础实体 object
,class
也继承自 object
。
>>> class People:
... pass
...
>>> type(People)
<type 'classobj'>
>>>
>>> isinstance(People, object)
True
这类似于:
>>> class Group(object):
... pass
...
>>> type(Group)
<type 'type'>
>>> isinstance(Group, object)
True
在 Python 3 class class_name:
和 class class_name(object):
returns 相同类型:
In [1]: class Person:
...: pass
...:
In [2]: Person
Out[2]: __main__.Person
In [3]: class Group(object):
...: pass
...:
In [4]: Group
Out[4]: __main__.Group
Python 中的所有内容都是 object
>>> my_list = []
>>> my_list
[]
>>> isinstance(my_list, object)
True
我正在学习 python 并且我开始阅读 Django 框架。在示例中,这是我发现的:
class Person(models.Model):
name = models.CharField(max_length=128)
def __str__(self): # __unicode__ on Python 2
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
def __str__(self): # __unicode__ on Python 2
return self.name
代码的作用并不重要。我的问题是关于函数 ManyToManyField(Person, through='Membership')
。我们将 class 名称传递给函数。
为什么允许? class NAMES 对象在 python 中吗?
是 classes
是 Python 中的对象。 python 中的每个实体都继承自基础实体 object
,class
也继承自 object
。
>>> class People:
... pass
...
>>> type(People)
<type 'classobj'>
>>>
>>> isinstance(People, object)
True
这类似于:
>>> class Group(object):
... pass
...
>>> type(Group)
<type 'type'>
>>> isinstance(Group, object)
True
在 Python 3 class class_name:
和 class class_name(object):
returns 相同类型:
In [1]: class Person:
...: pass
...:
In [2]: Person
Out[2]: __main__.Person
In [3]: class Group(object):
...: pass
...:
In [4]: Group
Out[4]: __main__.Group
Python 中的所有内容都是 object
>>> my_list = []
>>> my_list
[]
>>> isinstance(my_list, object)
True