zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Idea的类中使用实体类(有@Data注解)的Get/Set方法报错
    Springboot前后端分离中,后端拦截器拦截后,前端没有对应的返回码可以判断
    Window NodeJs安装
    Linux(CENTOS7) NodeJs安装
    Linux(CENTOS7) YUM方式安装mysql5.7
    根据M3U8地址下载视频
    Mysql时间范围分区(RANGE COLUMNS方式)
    Window Mysql5.7免安装版配置
    Window Jdk配置(win7/win10都可以)
    .net core2.0 读取appsettings.json
  • 原文地址:https://www.cnblogs.com/shanhua-fu/p/7405489.html
Copyright © 2011-2022 走看看