类和对象
面向过程:核心是“过程”,它是解决问题的步骤,流水线般的思维方式。
优点是:对问题,复杂的问题简单化
缺点:不容易扩展功能
面向对象:核心是“对象”,它是特征和技能的结合体。
优点:可扩展能力强
缺点:编程复杂度高
应用场景:用户需求经常变化,互联网应用,游戏,企业内部应用。
类:是指一些列对象相似的特征和技能的结合体。(在不同的角度,得到的分类是不同的)。
在现实中是:先有对象,后有类。
在编程中是:先定义类,后有对象。
class Luffystudent:
school = 'luffycity' #类的数据属性,又称静态变量:在class内,但不再class的方法内。
def __init__(self,name,age,sex): #__init__:方法是用来为对象定制对象自己独特的属性
self.Name = name #实例变量:在类的方法内,且被self所修饰
self.Age = age
self.Sex = sex
def learn(self):
print('self1')
def sleep(self):
print('self2')
print('yes') # 用来证明当类定义的时候已经执行了
print(Luffystudent.__dict__)
print(Luffystudent.school) # ==Luffycity.__dict__['school']
print(Luffystudent.learn) # ==Luffycity.__dict__['school']
stu1 = Luffystudent('zhang', 38, '男') #定义了一个对象,参数是对象独有的属性
stu2 = Luffystudent('li san', 18, '男')
print(stu1.__dict__) # 查看实例对象stu1的命名空间
print(stu1.school) # 类的对象是可以调用类的数据属性和函数属性
stu1.sleep()
# 类的第一大用途:对属性的操作,增,删,改,查
#第二大用途:实例化产生一个一个对象
Luffystudent.country = 'CHINA' # 增
print(Luffystudent.__dict__)
del Luffystudent.country # 删
print(Luffystudent.__dict__)
Luffystudent.school = 'LUFFYCITY' # 改
print(Luffystudent.__dict__) #查
加__init__方法后,实例化的步骤:
#先产生一个空对象stu1.
#类的__init__(self,....)中的self是把生成的对象stu1当为self
#类中的函数属性:是绑定给对象使用,绑定到不同对象是不同的绑定方法,对象调用绑定的方法时会把对象当作第一个传入给self。
对象对变量的查找顺序:先找自身下的属性,再在类中找,然后就是父类,以此类推。但绝不会再类外找!
浙公网安备 33010602011771号