python 学习。。。

来源:互联网 发布:apache tika使用说明 编辑:程序博客网 时间:2024/06/11 13:31

照着 慕课Python进阶写的,还有好多不会。

import timedef log(prefix):           #装饰器    def log_decorator(f):        def wrapper(*args,**kw):            print(prefix,f.__name__)            return f(*args,**kw)        return wrapper    return log_decoratorclass Person(object):          #对__  私有属性的调用    def __init__(self,score):        self.__score = score;    def get_grade(self):        if self.__score<60:            return "c"        if self.__score<80:            return "b"        if self.__score<100:            return "a"

类的继承

class Personn(object):    def __init__(self,name, gender):        self.name = name        self.gender = genderclass Teacher(Personn):    def __init__(self,name, gender, courge):        super(Teacher, self).__init__(name, gender)#用于初始化父类        #当有多继承时,可考虑Personn(Teacher, self).__init__(name, gender)        self.courge = courgeimport jsonclass Student(object):    def __init(self,s):        self.s = s    def read(self):        return self.s

python中获取对象信息

    type(“”)获取变量类型    dir(“”)获取变量所以信息    getattr()    setattr()

传入**kw参数,并通过setattr绑定属性
**kw是关键字参数,用于字典
iteritems()用于字典kw的遍历
setattr(self, k, v)就等价于self.k = v

重写str repr内置方法使能返回字符串相当于tostring

class Person(object):    def __init__(self, name, gender):        self.name = name        self.gender = genderclass Student(Person):    def __init__(self, name, gender, score):        super(Student, self).__init__(name, gender)        self.score = score    def __str__(self):        return "(Student: %s, %s, %s)"%(self.name, self.gender, self.score)    __repr__ = __str__

修改 Student 的 cmp 方法,让它按照分数从高到底排序,分数相同的按名字排序。

class Student(object):    def __init__(self, name, score):        self.name = name        self.score = score    def __str__(self):        return '(%s: %s)' % (self.name, self.score)    __repr__ = __str__    def __cmp__(self, s):        if self.score>s.score:            return -1        elif self.score<s.score:            return 1        elif self.name<s.name:            return -1        elif self.nae>s.name:            return 1        else:            return 0

有理数分数的四则运算

def gcd(a, b):    if b == 0:        return a    return gcd(b, a % b)class Rational(object):    def __init__(self, p, q):        self.p = p        self.q = q    def __add__(self, r):        return Rational(self.p * r.q + self.q * r.p, self.q * r.q)    def __sub__(self, r):        return Rational(self.p * r.q - self.q * r.p, self.q * r.q)    def __mul__(self, r):        return Rational(self.p * r.p, self.q * r.q)    def __div__(self, r):        return Rational(self.p * r.q, self.q * r.p)    def __str__(self):        g = gcd(self.p, self.q)        return '%s/%s' % (self.p / g, self.q / g)    __repr__ = __str__r1 = Rational(1, 2)r2 = Rational(1, 4)print r1 + r2print r1 - r2print r1 * r2print r1 / r2

没保存就关机了,幸好还有~~(>_<)~~

0 0
原创粉丝点击