• Python中类的定义与使用


    目标:

      1.类的定义

      2.父类,子类定义,以及子类调用父类

      3.类的组合使用

      4.内置功能

    1.类的定义

    代码如下:

    #!/usr/bin/env python
    #coding:utf8
    
    
    class Hotel(object):
        """docstring for Hotel"""
        def __init__(self, room, cf=1.0, br=15):
            self.room = room
            self.cf = cf
            self.br = br
    
        def cacl_all(self, days=1):
            return (self.room * self.cf + self.br) * days
    
    if __name__ == '__main__':
        stdroom = Hotel(200)
        big_room = Hotel(230, 0.9)
        print stdroom.cacl_all()
        print stdroom.cacl_all(2)
        print big_room.cacl_all()
        print big_room.cacl_all(3)
        

    2.父类、子类以及调用父类

    代码如下:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    # 父类
    class AddBook(object):
        def __init__(self, name, phone):
            self.name = name
            self.phone = phone
    
        def get_phone(self):
            return self.phone
    
    # 子类,继承
    class EmplEmail(AddBook):
        def __init__(self, nm, ph, email):
            # AddBook.__init__(self, nm, ph) # 调用父类方法一
            super(EmplEmail, self).__init__(nm, ph) # 调用父类方法二
            self.email = email
    
        def get_email(self):
            return self.email
    
    # 调用
    if __name__ == "__main__":
        Detian = AddBook('handetian', '18210413001')
        Meng = AddBook('shaomeng', '18210413002')
    
        print Detian.get_phone()
        print AddBook.get_phone(Meng)
    
        alice = EmplEmail('alice', '18210418888', 'alice@xkops.com')
        print alice.get_email(), alice.get_phone()

    3.类的组合使用

    代码如下:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    '''
    1.class类的组合使用
    2.手机、邮箱、QQ等是可以变化的(定义在一起),姓名不可变(单独定义)。
    3.在另一个类中引用
    '''
    
    class Info(object):
        def __init__(self, phone, email, qq):
            self.phone = phone
            self.email = email
            self.qq = qq
    
        def get_phone(self):
            return self.phone
    
        def update_phone(self, newphone):
            self.phone = newphone
            print "手机号更改已更改"
    
        def get_email(self):
            return self.email
    
    
    class AddrBook(object):
        '''docstring for AddBook'''
        def __init__(self, name, phone, email, qq):
            self.name = name
            self.info = Info(phone, email, qq)
    
    
    if __name__ == "__main__":
        Detian = AddrBook('handetian', '18210413001', 'detian@xkops.com', '123456')
        print Detian.info.get_phone()
        Detian.info.update_phone(18210413002)
        print Detian.info.get_phone()
        print Detian.info.get_email()

    4.内置功能(函数()加与不加的区别)

    代码如下:

    #!/usr/bin/env python
    #coding:utf8
    
    class Books(object):
        def __init__(self, title, author):
            self.title = title
            self.author = author
    
        def __str__(self):
            return self.title
    
        def __repr__(self):
            return self.title
    
        def __call__(self):
            print "%s is written by %s" %(self.title, self.author)
    
    
    if __name__ == '__main__':
        pybook = Books('Core Python', 'Wesley')
        print pybook
        pybook()

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    #!/usr/bin/env python
    #coding:utf8
    
    class  Number(object):
        """Custum object
        add/radd -> +; 
        sub/rsub -> -;
        mul/rmul -> *;
        div/rdiv -> /;
        """
        def __init__(self, number):
            self.number = number
    
        def __add__(self, other):
            return self.number + other        
    
        def __radd__(self, other):
            return self.number  + other
    
        def __sub__(self, other):
            return self.number - other
    
        def __rsub__(self, other):
            return other - self.number
    
    
        def __gt__(self, other):
            if self.number > other:
                return True
            return False
    
    
    if __name__ == '__main__':
        num = Number(10)
        print num + 20
        print 30 + num
        print num - 5
        print 11 - num
        print num > 20
  • 相关阅读:
    【机器学习】Softmax 和Logistic Regression回归Sigmod
    【LDA】线性判别式分析
    【MLE】最大似然估计Maximum Likelihood Estimation
    n阶方阵A可逆充分必要条件
    【机器学习】K-Means算法
    【X-Forwarded-For】WEB修改访客IP
    【Ubuntu】ubuntu系统下python3和python2环境自由切换
    【Python】打印object对象
    【linux】dpkg info修复及dpkg: warning: files list file for package
    【php】https请求
  • 原文地址:https://www.cnblogs.com/xkops/p/6269519.html
Copyright © 2020-2023  润新知