Python面向对象
面向对象编程概述 类和对象 构造函数 属性和方法 继承与重载 1,面向对象编程概述 把世界万物看成各种类, 面向对象编程即00P编程,区别于面向过程编程,面向对象编程比较适合开发大项目,会以更接近人类的思维的角度去写程序。 2,类和对象 类:具有某种特征的事物的集合(群体) 对象:群体(类)里面的个体。 类是抽象的,对象是具体的。对象是类的实例化。 class 类名: 类内容 #-----创建一个类 class cl1: pass #不执行任何操作,点位 # 实例化一个类 # >>> cl1 # <class '__main__.cl1'> # >>> a=cl1() # >>> a # <__main__.cl1 object at 0x0000000002B40320> #3,构造函数(一个类构造对象的时候触发的方法) # self:在类中的方法必须加上self参数:__init__(self,参数) # 类在实例化的时候自动首先触发的方法 # 创建一个构造函数 class cl2: def __init__(self): print("I am cl2 self!") # 实例化时,自动触发 # >>> b=cl2() # I am cl2 self! # 给类加上参数:实际上就相当于在构造方法上加上参数 class cl3: def __init__(self,name,job): print("My name is "+name+" My job is "+job) # 实例化时,必须加上两个参数,否则报错 # >>> c=cl3("Tom","tescher") # My name is Tom My job is tescher #4,属性和方法 # 属性:静态的特征,如头发,手臂等 # 方法:动态的特征,如唱歌,写字等 #属性:类里面的变量,定义方法:self.属性名 class cl4: def __init__(self,name,job): self.myname=name self.myjob=job self.myage=20 # 实例化 # >>> c=cl4("Alice","teacher") # >>> c.myname # 'Alice' # >>> c.myage # 20 #-----方法:类里面的函数:def 函数名(self,参数) class cl5: # 可以不加构造函数 def myfunc1(self): print("hello cl5!") # 调用 # >>> c=cl5() # >>> c # <__main__.cl5 object at 0x0000000002A259B0> # >>> c.myfunc1() # hello cl5! # >>> #方法加参数:类里面的函数:def 函数名(self,参数) class cl5: def myfunc1(self,name): print("hello cl5!"+name) # >>> c=cl5() #实例化时不用带参数 # >>> c.myfunc1("Tom") #调用方法必须带参数 # hello cl5!Tom # 用构造函数 class cl6: def __init__(self,name): self.myname=name def myfunc1(self): print("hello cl5!"+self.myname) # >>> c=cl6("John") #实例化时必须带参数 # >>> c.myfunc1() #调用方法不带参数 # hello cl5!John === 继承与重载 继承:把某一个或多个类(基类)的特征拿过来。 重载:在子类(派生类)里面对继承过来的特征重新定义。在子类中重写属性或方法,覆盖父类的过程 父类:基类 子类:派生类 --试验文件 # 继承:分为单继承-只继承一个父类 ;多继承-继承多个父类 # 某一个家族有父亲,母亲,儿子,女儿, # 父亲可以说话,母亲可以写字 # 儿子继承了父亲, # 女儿继承了父亲和母亲,并且有新能力听东西 # 小儿子继承了父亲,但又优化了说话能力。 # # 父类 class father(): def speak(self): print("I can speak!") # 单继承:class 子类(父类) class son(father): pass # >>> s=son() # >>> s.speak() # I can speak! # 母亲类 class mother(): def write(self): print("I can write") # 多继承 class daughter(father,mother): def listen(self): print("I can lister") # >>> d=daughter() # >>> d.speak() # I can speak! # >>> d.write() # I can write # >>> d.listen() # I can lister # 重写(重载) class son2(father): def speak(self): #与父类重名,就覆盖掉了父类方法 print("I can speak 2!") # >>> s=son2() # >>> s.speak() # I can speak 2! === 作业 将多个Excel表格里面的内容合并到一个文件中。 要点:使用第三方模块操作,比如xlrd、 xlwt, 还需要注意一个exce1中有多个sheet,也需要合并。
end
Tag: Python基础 面向对象