#1、面向对象 #面向过程与面向对象 #面向过程:过程即解决问题的过程,就是有逻辑顺序,基于该思想写程序。如设计流程图,是一种机械式的思惟方式。 #优势:复杂的过程流程化,进而简单化 #缺点:扩展性差 #面向对象:对象是特征与技能的结合体,基于该思想编写程序好比创造一个世界,世界是由一个个对象组成 #优势:可扩展性强 #缺点:编程复杂高,容易出现过分设计 #2、类 #对象是特征与技能的结合体,类是一系列对象类似的特征与技能的结合体。 #在实现中:必定是先有的一个个具体的对象,后总结出的类。如(人,人类) #在程序中:必定是先定义类,后产生对象。 #类的格式: class 类名: #类体内的代码在类的定义阶段就会当即执行, #如: class sut: sc='dagschool' def learn(self): print('is learing') def __init__(self,name,sex,age): #__init__在调用类时会自动触发 self.Name=name self.Sex=sex self.Age=age #self.Name='李' #self.Sex='男' #self.Age=18 def choose_cou(self): print('choose') #类的查看属性 print(sut.__dict__) #__dict__查看类的名称空间 print(sut.sc) #访问类的名称空间,"."访问前面名称空间的属性。 print(sut.learn) #learn类的函数属性 #类的增长属性 sut.counttry='china' print(sut.counttry) #类的修改属性 sut.sc='DAGSCHOOL' print(sut.sc) #类的删除属性 del sut.counttry print(sut.counttry) #类函数的调用,必须传参 sut.learn('ss') #调用类的过程又称之为实例化 #1.获得的返回值,便是一个对象,该对象是一个空对象。 #2.把空对象,连同调用类时类括号参数,把它拼接成一堆参数,其中空对象自己要当成第一个参数,而后传给初始化的函数__init__。如:sut.__init__(sut1,'李','男',18) sut1=sut('李','男',18) #sut1就是一个对象 print(sut1.__dict__) print(sut1.Name,sut1.Sex,sut1.Age) #类中定义的函数是绑定给对象使用的,不一样的对象就是不一样的绑定方法,绑定给谁,就应该由谁来调用。谁来调用,就会谁当作第一个参数传给对象的函数。 class sut: sc='dagschool' def learn(self,x,y): print('%s is learing' %self.Name) print(x,y) def __init__(self, name, sex, age): # __init__在调用类时会自动触发 self.Name=name self.Sex=sex self.Age=age sut1=sut('李','男',18) #sut1就是一个对象 print(sut1.__dict__) print(sut1.Name,sut1.Sex,sut1.Age) sut2=sut('罗','男',8) sut3=sut('候','男',181) print(sut.learn) print(sut1.learn) print(sut2.learn) print(sut3.learn) sut1.learn(1,2) sut.learn(sut1,1,2) #结果相同 #在类内部定义的函数,都应该默认有一个参数。 例: class Teac: schoo='oldboy' count=0 def __init__(self,name,sex,age,level,salary): self.name=name self.sex=sex self.age=age self.level=level self.salary=salary Teacher.count+=1 def teach(self): print('%s is tacahing' %self.name) t1=Teac('ii','sdf',19,56,20) t2=Teac('tr','tf',58,60,1000) t3=Teac('hg','aop',68,40,100) print(t1.count) #类及类型 g=[1,2,3,4] #g=list([1,2,3,4]) g1=list([1,2,3,4]) g2=list([1,2,3,4]) g1.append(5) #等于 list.append(g1,5) #g1至关于默认参数self print(g1) #绑定方法的理解 g1.append('a') g2.append('b')