任务:

在开氏温度(Kelvin)、摄氏度(Celsius)、华氏温度(Fahrenheit)、兰金温度(Rankine)之间做转换

解决方案:

#coding=utf-8
class Temperature(object):
coefficients={'c':(1.0,0.0,-273.15),'f':(1.8,-273.15,32.0),'r':(1.8,0.0,0.0)} def __init__(self,**kwargs):
try:
name,value = kwargs.popitem()
except KeyError:
name,value = 'k',0
if kwargs or name not in 'kcfr':
kwargs[name] = value
raise TypeError,'invalid arguments %r' % kwargs
setattr(self,name,float(value)) def __getattr__(self,name):
try:
eq = self.coefficients[name]
except KeyError:
raise AttributeError,name
return (self.k + eq[1]) + eq[0] + eq[2]
def __setattr__(self,name,value):
if name in self.coefficients:
eq = self.coefficients[name]
self.k = (value - eq[2]) / eq[0] - eq[1]
elif name == 'k':
object.__setattr__(self,name,value)
else:
raise AttributeError,name
def __str__(self):
return "%s K" % self.k
def __repr__(self):
return "Temperature(k=%r)" % self.k #测试
te = Temperature(f=70)
print te.c

cookbook 6.1 温标的转换的更多相关文章

  1. 【python cookbook】【数据结构与算法】19.同时对数据做转换和换算

    问题:我们需要调用一个换算函数(例如sum().min().max()),但是首先需对数据做转换或者筛选处理 解决方案:非常优雅的方法---在函数参数中使用生成器表达式 例如: # 计算平方和 num ...

  2. Nhibernate cookbook 3.0-翻译

    /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-ts ...

  3. python cookbook学习1

    python cookbook学习笔记 第一章 文本(1) 1.1每次处理一个字符(即每次处理一个字符的方式处理字符串) print list('theString') #方法一,转列表 结果:['t ...

  4. python书籍推荐:Python Cookbook第三版中文

    所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/44/ 来源:python黑洞网 内容 ...

  5. jsoup Cookbook(中文版)-Jsoup解析HTML

    jsoup Cookbook(中文版) 入门 1.      解析和遍历一个html文档 如何解析一个HTML文档: String html = "<html><head& ...

  6. Jakarta Commons Cookbook

      Cookbook就是工具书,应该是前年看的,在中关村看的影印版,全英文,本书主要讲解了一下模块: Core:BeanUtils,Lang,Collections,logging Db:DbUtil ...

  7. python cookbook第三版学习笔记二十一:利用装饰器强制函数上的类型检查

    在演示实际代码前,先说明我们的目标:能对函数参数类型进行断言,类似下面这样: @typeassert(int, int) ... def add(x, y): ...     return x + y ...

  8. matplotlib学习笔记.CookBook

    matplotlib 是Python下的一个高质量的画图库,可以简单的类似于MATLAB方法构建高质量的图表. 原始文章地址:http://zanyongli.i.sohu.com/blog/view ...

  9. python之数据序列转换并同时计算数据

    问题 你需要在数据序列上执行聚集函数(比如 sum() , min() , max() ), 但是首先你需要先转换或者过滤数据 解决方案 一个非常优雅的方式去结合数据计算与转换就是使用一个生成器表达式 ...

随机推荐

  1. C++类的对象和类的指针的区别

    #include <iostream> #include <string> using namespace std; class Student { public: stati ...

  2. 使用rpm安装mysql 5.7和依赖们

    在安装mysql-server之前,需要安装相应的依赖,当前系统环境是CentOS7,需要安装3个依赖,mysql-community-common,mysql-community-libs,mysq ...

  3. php socket 编程读写函数

    fwrite() 二进制安全 end条件[string写完/length-1]; fputs() fwrite()的别名; fread() 二进制安全,end条件[一个可用包/EOF/length-1 ...

  4. 如何给django admin.py配置超级管理员?注册表格?

    admin.py是django给我们提供的功能非常强大的后台,况且支持拓展,,如果你要是觉得admin的后台不够牛逼你可以自己写一个!如何自己写一个后台,后面我有时间了会给大家更新!一起学习!一起进步 ...

  5. django进阶版4

    目录 1 Auth模块是什么 2 auth模块常用方法 authenticate() login(HttpRequest, user) logout(request) is_authenticated ...

  6. paramiko-ssh实例

    import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_k ...

  7. MyBatis 体系结构、根配置文件、Mapper映射文件

    一.MyBatis的体系结构 1.SqlSessionFactory对象 SqlSessionFactory对象是MyBatis的管理核心,它是单个数据库映射关系经过编译后的内存镜像,是创建SqlSe ...

  8. SQL的GROUP BY 与 Order By

    1.概述 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理. 2.原始表 3.简 ...

  9. Hadoop 3相对于hadoop 2的新特性

    相对于之前主要生产发布版本Hadoop 2,Apache Hadoop 3整合许多重要的增强功能. Hadoop 3是一个可用版本,提供了稳定性和高质量的API,可以用于实际的产品开发.下面简要介绍一 ...

  10. 自定义事件 Event 、CustomEvent的使用

    通过Event和dispathEvents触发自定义事件 <span id="btn">获取</span> <script> var event ...