开始学习面向对象,可以说之前的学习和编程思路都是面向过程的,从上到下,一步一步走完。
如果说一个简单的需求,用面向过程实现起来相对容易,但是如果在日常生产,面向对象就可以发挥出他的优势了。
程序的可扩展性,代码的可读性,以及后期的优化和二次开发,都是面向过程不可相比的,下面整理一下知识点。
类:

#Authon Ivor class dog(object): #公有变量,如果有私有变量,优先调用私有,如果没有调用公有 age = 8 def __init__(self,name,type): self.name = name self.type = type def bark(self): print("%s is barking,wang.wang..wang..." % self.name) self.type = "wang.wang..wang.." def get_type(self): print("{0} 's type is {1}".format(self.name,self.type)) d = dog("lovely","Teddy") d2 = dog("diudiu","田园犬") d.bark() d2.get_type() d.age = 10 print(d.age) print(d2.age) dog.age = 9 print(d.age) print(d2.age) def bark2(): print("bark") d.bark = bark2 d.bark()
继承:

#Authon Ivor class Person(object): def __init__(self,name,age): self.name = name self.age = age self.sex = "F" def talk(self): print("I'm a person!") class BlackPerson(Person): #先继承,再重构 def __init__(self,name,age,strength): Person.__init__(self,name,age) self.strength = strength #重构函数 def talk(self): print("I am BlackMan!") class WhitePerson(Person): pass B = BlackPerson("YoYo",22,"Strong") B.talk()
继承2:

#Authon Ivor class SchoolMember(object): '''基类''' member = 0 def __init__(self,name,age,sex): self.name = name self.age = age self.sex =sex self.enroll() def enroll(self): print("[%s] has just enrolled ." % self.name) SchoolMember.member += 1 def tell(self): print("info %s".center(20,"-") % self.name ) for k,v in self.__dict__.items(): print("%s:%s" % (k,v)) print("info %s".center(20,"-") % self.name ) #析构函数 def __del__(self): print("