首页 > 编程 > Python > 正文

详解Python中类的定义与使用

2020-02-23 04:33:59
字体:
来源:转载
供稿:网友

类顾名思义,就是一类事物、或者叫做实例,它用来描述具有共同特征的一类事物。我们在python中声明类的关键词是class,类还有功能和属性,属性就是这类事物的特征,而功能就是它能做什么,也是就是方法或者函数。我们仍然用例子来说明问题。

目标:

  1.类的定义

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

  3.类的组合使用

  4.内置功能

1.类的定义

代码如下:

#!/usr/bin/env python#coding:utf8class 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) * daysif __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.emailclass 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:utf8class 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()            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表