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', '')
Meng = AddBook('shaomeng', '') print Detian.get_phone()
print AddBook.get_phone(Meng) alice = EmplEmail('alice', '', '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', '', 'detian@xkops.com', '')
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
Python中类的定义与使用的更多相关文章
- python中类的定义、实例化、封装以及私有变量/方法
1. 定义类 python中定义一个类的格式如下: class MyClass(object): def __init__(self,data1,data2): self.__data1=data1 ...
- Python中类的定义及使用
类是一些有共同特征和行为事务事物的抽象概念的总和. 从中可以看出,方法只能使用实例直接调用(无需传self参数),而使用类调用必须传入实例对象: 属性可以使用实例调用,也可以使用类直接调用,因此可以看 ...
- python中类的定义方法
# coding =utf-8 ## 类的定义 ##-------------------------------------------------- class Employee: empCoun ...
- Python中类的定义
class Student(object): # 有点类似其它高级语言的构造函数 def __init__(self,name,score): self.name = name self.score ...
- python中类中属性和方法的具体定义方法和使用
1. Python中类中特性分成属性和方法 属性和方法都分为私有和公有的,私有的只可以在本类中使用外部是无法访问的 2. 定义属性(成员变量)的语法格式(公有属性/私有属性) class 类名: de ...
- python类的定义和使用
python中类的声明使用关键词class,可以提供一个可选的父类或者说基类,如果没有合适的基类,那就用object作为基类. 定义格式: class 类名(object): "类的说明文档 ...
- python中类的继承
python中类的继承 在python中面向对象编程中实现继承,以下面一个实例进行说明. class SchoolMenber(): # __init__类似于c++中的构造函数 # __init__ ...
- python中类的属性(class attribute)的解释
python中的类叫 class object,类的实例叫instance object. 类 Class Objects 类拥有两种操作,1.类属性 attribute references 2.实 ...
- Python中类的__init__继承
Python中类的__init__继承 概念: 定义父类 In [10]: class Person: ....: def __init__(self,name,age,sex): ....: sel ...
随机推荐
- Web安全测试指南--会话管理
会话复杂度: 5.3.2.会话预测: 5.3.3.会话定置: 5.3.4.CSRF: 5.3.5.会话注销: 5.3.6.会话超时:
- Mysql 於lampp xampp LinuxUbuntu下的配置
默认执行Lampp/Xampp 於Ubuntu下完成后,需要对mysql进行一系列的配置,方可进行更好的操作 lampp下的mysql配置文件路径: /opt/lampp/etc/my.cnf 1 配 ...
- OpenGL chapter5 基础纹理
Chapter5 基础纹理 Contents: ==================================================== | 任务 | 使用的函数 ========== ...
- OpenGL chapter3 基础渲染
3.1 基础图形管线 三种向OpenGl着色器传递渲染数据的方法:属性,Uniform和纹理.3.2 创建坐标系 3.2.1 正投影 GLFrustum::SetOrthographic(⋯⋯): 3 ...
- 解决Mac nginx问题 [emerg] 54933#0: bind() to 0.0.0.0:80 failed (13: Permission denied)
brew services restart nginx Stopping nginx... (might take a while) ==> Successfully stopped nginx ...
- Spark分析之Worker
override def preStart() { webUi = new WorkerWebUI(this, workDir, Some(webUiPort)) webUi.bind() //创建并 ...
- SDOI 2017 天才黑客
/* 根据claris的 博客以及 beginend 的博客来写的 首先考虑如何求出最短路 可以从样例看出 路径是从边走到边的, 所以我们将边看作点 有共同端点的两边之间 互相连边, 边权为lcp. ...
- Jenkins 邮件发送设置(jenkins自带邮件设置)
首先进入系统设置,找到Jenkins Location部分 这里设置 系统管理员邮件地址,然后设置邮件通知部分,这里为了方便我使用了QQ邮箱(作为发送邮件地址) 这里的 用户名 必须与上面的 系统管理 ...
- 关联github, 添加gitignore 规则
1. 新建Maven项目 2. 新建github repository 3. 执行命令 echo "# se" >> README.md git init git ad ...
- 多种聚类算法概述(BIRCH, DBSCAN, K-means, MEAN-SHIFT)
BIRCH:是一种使用树分类的算法,适用的范围是样本数大,特征数小的算法,因为特征数大的话,那么树模型结构就会要复杂很多 DBSCAN:基于概率密度的聚类方法:速度相对较慢,不适用于大型的数据,输入参 ...