这里有新鲜出炉的 Python3 官方中文指南,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
本篇文章主要介绍了详解 Python 中类的定义与使用,介绍了什么叫做类和如何使用,具有一定的参考价值,想要学习 Python 的同学可以了解一下。
类顾名思义,就是一类事物、或者叫做实例,它用来描述具有共同特征的一类事物。我们在 python 中声明类的关键词是 class,类还有功能和属性,属性就是这类事物的特征,而功能就是它能做什么,也是就是方法或者函数。我们仍然用例子来说明问题。
目标:
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
来源: http://www.phperz.com/article/17/0516/333828.html