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 ...
随机推荐
- Linux进程与线程概述
进程与线程 实现方式的区别:进程是资源分配的基本单位,线程是调度的基本单位. 为什么对于大多数合作性任务,多线程比多个独立的进程更优越呢?这是因为,线程共享相同的内存空间.不同的线程可以存取内存中的同 ...
- C# AtomicInt
using System; using System.Threading; /// <summary> /// Provides lock-free atomic read/write u ...
- PHP书写格式
从一个例子开始. 启动编辑器,创建一个php文件并键入如下代码: <?php echo "你好!"; ?> 运行 将该文件命名为 test.php 并存储于 E:htm ...
- css border
CSS border用于设置HTML元素(如div)的边框,包括边框的宽度.颜色和样式.本文章向码农介绍CSS border边框属性详细内容,感兴趣的码农可以参考一下. CSS 边框即CSS bord ...
- var与dynamic
var与dynamic 如果你用MVC写过程序,那么你应该知道ViewBag这个用于前后台的数据传递工具,那么你是否对ViewBag的用法感到过疑惑呢? ViewBag.Mode1l=new obje ...
- css3选择符
常用的选择符 1.元素选择符 2.id选择符 3.class选择符 4.通配符 5.群组选择符 6.包含选择符 7.伪类选择符(伪类选择符CSS中已经定义好的选择器,不能随便取名) 8.伪对象选择符( ...
- HTML|CSS总结与补充
知识内容: 1.HTML总结 2.CSS总结 一.HTML总结 详细内容见:http://www.cnblogs.com/wyb666/p/8733699.html 1.HTML介绍及前端入门 (1) ...
- left join 如何增加where条件(在on的后面),这很重要
SELECT [学号], [姓名],[备注2],[年级],专业,[学院],[x30] FROM [总表] left join k指标体系 on 学号 = x01 where 年级='2014'
- PPT怎么母版怎么修改及应用
打开一个PPT,假设我要建一个母版(目的就是母版容易全部修改,不用同样的内容一个一个改) 然后点击如图"视图"+"幻灯片母版" 然后就会出现一个这样的工具栏界面 ...
- 使用Travis进行持续集成
使用Travis进行持续集成 廖雪峰 持续集成:Continuous Integration,简称CI,意思是,在一个项目中,任何人对代码库的任何改动,都会触发CI服务器自动对项目进行构建,自动运行测 ...