创建实例
直接调用类对象,即可创建该类的实例对象。
int() # 调用 int 类
0
list('123') # 传参调用 list 类
['1', '2', '3']
class A:
def __init__(self, name):
self.name = name
def __repr__(self):
return self.name
A('实例1'), A('实例2') # 调用自定义类
(实例1, 实例2)
实例对象是由特殊方法 __new__()
创建,__init__()
定制完成。两个方法是隐式地完成创建和定制的,当然也可以显式地创建并定制。
class A:
def __init__(self):
self.name = '实例'
A # 类对象 A
__main__.A
# 显式地创建类 A 的一个实例 a
a = object.__new__(A)
a
<__main__.A at 0x20d23e95d30>
# 未初始化,无属性
a.name
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-36-b3a4d04d98fc> in <module>
1 # 未初始化,无属性
----> 2 a.name
AttributeError: 'A' object has no attribute 'name'
# 也可以使用 a.__init__(),
# 它会自动将实例作为第一个参数完成初始化
A.__init__(a)
a
<__main__.A at 0x20d23e95d30>
a.name
'实例'