• python 基础之第十一天(面向对象)


    #############面向对象#####################

    类:

    In [1]: class MyClass(object):         ##用class定义一个类
       ...:     def pstar(self):            
       ...:         print '*'*20
       ...:         
    
    In [2]: a = MyClass()         ##创建一个实例对象,跟java相似
    
    In [3]: a.pstar()            ##通过实例对象,调用类里面的方法,这里的相当于把实例对象’a‘传递给self,作为pstar的参数了,所以不报错,self 是可以是任何东西,习惯写self
    ********************

      In [4]: MyClass.pstar(a)    #####
      ********************

     

    #####################类的组合###########################

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    class Info(object):
        def __init__(self,ph,em,qq):
            self.phone = ph
            self.email = em
            self.qq = qq
        def get_phone(self):
            return self.phone
        def update_phone(self,newph):
            self.phone = newph
    class AddrBook():
        def __init__(self,nm,ph,em,qq):
            self.name = nm
            self.info = Info(ph,em,qq)
    if __name__ == '__main__':
        bob = AddrBook("Bob Green",'15980113980','bob@qq.com','12345678')
        print bob.info.get_phone()

    效果:

    C:Python27python2.exe D:/pycharm/pa/addbook2.py
    15980113980
    Bob Green

    ####################类的继承###################

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    class AddBook(object):
        def __init__(self,nm,ph):
            self.name = nm
            self.phone = ph
        def get_name(self):
            return self.name
        def get_phone(self):
            return self.phone
    class Add(AddBook):
        pass
    if __name__ == '__main__':
        bob = Add('Bob Green','15980113990')
        print bob.get_phone()
        print bob.get_name()

    效果:

    C:Python27python2.exe D:/pycharm/pa/addbook.py
    15980113990
    Bob Green
    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    class AddBook(object):
        def __init__(self,nm,ph):
            self.name = nm
            self.phone = ph
        def get_name(self):
            return self.name
        def get_phone(self):
            return self.phone
    class Add(AddBook):
        def __init__(self,nm,ph,id):
            self.id = id
            AddBook.__init__(self,nm,ph)     #####继承
    
    
    if __name__ == '__main__':
        bob = Add('Bob Green','15980113990','350823199900616671')
        print bob.get_phone()
        print bob.get_name()
        print bob.id

    效果:

    C:Python27python2.exe D:/pycharm/pa/addbook.py
    15980113990
    Bob Green
    350823199900616671

    额外:

    ##########__str__##############

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    class Book():
        def __init__(self,tt,bb):
            self.tt = tt
            self.bb = bb
        def __str__(self):
            return self.tt
    
    
    if __name__ == '__main__':
        playbook = Book('fush','hua')
        print playbook                  ###因为类中定义了__str__方法,直接通过实例对象返回值

    结果:

    C:Python27python2.exe D:/pycharm/pa/book.py
    fush

    ############__call__################

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    class Book():
        def __init__(self,tt,bb):
            self.tt = tt
            self.bb = bb
        def __str__(self):
            return self.tt
        def __call__(self):
            print '%s %s' % (self.tt,self.bb)
    
    if __name__ == '__main__':
        playbook = Book('fush','hua')
        print playbook  #因为类中定义了__str__方法,此处打印出的是__str__的返回值
        playbook()  #调用playbook就是执行__call__方法中的代码

    今日最后:

    In [8]: import ftplib
    
    In [9]: ftplib.__file__
    Out[9]: '/usr/lib64/python2.6/ftplib.pyc'
    [root@master ~]# vim /usr/lib64/python2.6/ftplib.py
  • 相关阅读:
    pytest文档29-allure-pytest(最新最全,保证能搞成功!)
    使用 JMeter 进行压力测试
    web自动化针对PO模式进行二次封装之basepage
    关于面试总结-http协议相关面试题 -----转载
    移动APP测试基础分享
    基于python+requests+unittest框架接口自动化测试设计开发
    jmeter断言接口响应字段大小
    csv文件转换为xlsx文件
    钉钉机器人发群消息笔记
    docker学习笔记
  • 原文地址:https://www.cnblogs.com/shanhua-fu/p/7405489.html
Copyright © 2020-2023  润新知