本节内容
1、是如何产生对象
2、实例化的步骤
3、类即类型
一、是如何产生对象?
__init__方法用来为对象定制对象自己独有的特征
1、stu1=LuffyStudent()调用报错
1、代码
class LuffyStudent: school='luffycity' # stu1, '王二丫', '女', 18 def __init__(self,name,sex,age): self.Name=name self.Sex=sex self.Age=age def learn(self): print('is learning') def eat(self): print('is sleeping') #后产生对象 stu1=LuffyStudent()
2、输出
Traceback (most recent call last): File "F:/s13/day07/4 __init__方法.py", line 23, in <module> stu1=LuffyStudent() TypeError: __init__() missing 3 required positional arguments: 'name', 'sex', and 'age
意思是么有找到'name', 'sex', and 'age参数
2、stu1=LuffyStudent('王二丫','女',18)调用成功
1、代码
#__init__方法用来为对象定制对象自己独有的特征 class LuffyStudent: school='luffycity' # stu1, '王二丫', '女', 18 def __init__(self,name,sex,age): self.Name=name self.Sex=sex self.Age=age def learn(self): print('is learning') def eat(self): print('is sleeping') #后产生对象 stu1=LuffyStudent('王二丫','女',18) #LuffyStudent.__init__(stu1,'王二丫','女',18) print(stu1.__dict__)
2、输出
{'Sex': '女', 'Age': 18, 'Name': '王二丫'}
二、__init__方法后,实例化的步骤
1、先产生一个空对象stu1
1、代码
def __init__(self,name,sex,age): self.Name=name self.Sex=sex self.Age=age #stu1.Name='王二丫' #stu1.Sex='女' #stu1.Age=18
stu1=LuffyStudent('王二丫','女',18) #LuffyStudent.__init__(stu1,'王二丫','女',18)
print(LuffyStudent.__init__)
2、输出
<function LuffyStudent.__init__ at 0x0000000001101378>
2、LuffyStudent.__init__(stu1,'王二丫','女',18)
1、原理图
2、源代码
#后产生对象 stu1=LuffyStudent('王二丫','女',18) #LuffyStudent.__init__(stu1,'王二丫','女',18)
print(stu1.__dict__)
3、输出
{'Name': '王二丫', 'Sex': '女', 'Age': 18}
三、类即类型
python一切皆对象,在python3里统一类类与类型的概念
1、类型list就是类list
1、代码
print(type([1,2])) print(list)
2、输出
<class 'list'> <class 'list'>
2、实例化的到4个对象l1,l2,l3,l4
>>> l1=list() >>> l2=list() >>> l3=list() >>> l4=list()
3、三个对象都有绑定方法append,是相同的功能,但内存地址不同
>>> l1.append <built-in method append of list object at 0x000000000227E348> >>> l2.append <built-in method append of list object at 0x000000000227C4C8> >>> l3.append <built-in method append of list object at 0x000000000227C508> >>> l4.append <built-in method append of list object at 0x000000000227C548>
4、操作绑定方法l1.append(3),就是在往l1添加3,绝对不会将3添加到l2或l3
>>> l1.append(3) >>> l1 [3] >>> l2 [] >>> l3 [] >>> l4 []
5、调用类list.append(l3,111)等同于l3.append(111)
>>> list.append(l3,111)
>>> l3
[111]