类和对象

 

面向过程:核心是“过程”,它是解决问题的步骤,流水线般的思维方式。

优点是:对问题,复杂的问题简单化

缺点:不容易扩展功能

 

面向对象:核心是“对象”,它是特征和技能的结合体。

优点:可扩展能力强

缺点:编程复杂度高

应用场景:用户需求经常变化,互联网应用,游戏,企业内部应用。

 

类:是指一些列对象相似的特征和技能的结合体。(在不同的角度,得到的分类是不同的)。

在现实中是:先有对象,后有类。

在编程中是:先定义类,后有对象。

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。

 

对象对变量的查找顺序:先找自身下的属性,再在类中找,然后就是父类,以此类推。但绝不会再类外找!

 

posted @ 2018-03-17 23:13  笃行1995  阅读(110)  评论(0编辑  收藏  举报