Allen 2020-06-13 17:05:40 6036 0 0 0 0

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基础 面向对象
我也要发一个   ·   返回首页   ·   返回[Python]   ·   前一个   ·   下一个
相关内容

Python函数详解 2020-06-13 

Python异常处理 2020-06-13 

Python文件操作 2020-06-13 

Python模块实战 2020-06-13 

欢迎评论
未登录,
请先 [ 注册 ] or [ 登录 ]
(一分钟即可完成注册!)
返回首页     ·   返回[Python]   ·   返回顶部