Python 学习笔记 - 5

今天从25章开始(P652)学习 Python 的 OOP

用代码看起来更直观:


class Class_A:
    def __init__(self,value):               # 构造函数
        self.data = value
    def __add__(self,other):                # 运算符重载
        return Class_A(self.data +other)
    def __str__(self):                      # 运算符重载
        return '[Class_A : %s]'% self.data
    def do_something(self,percent):         # 方法
        self.data *= (1.00 + percent)

class Class_B(Class_A):                     # 继承(多基类继承!)
    def __init__(self,value):               
        Class_A.__init__(self,value)        # 显式实现
    def do_something(self,percent):         # 覆盖基类方法
        self.data *= (1.00 - percent)

class Class_C(Class_B):
    def __init__(self,value):
        self.data = value
    def __str__(self):                      # 覆盖基类运算符重载
        return '[Class_C] : %s]' % self.data

C_A = Class_A(100)
C_B = Class_B(200)
C_C = Class_C(300)

C_A.do_something(0.10)  # C_A.data = 100 * 1.10 = 110
print(C_A)
C_A_Add = C_A + 10.00   # 运算符重载,返回新的 Class_A , C_A.data = 110 +10 = 120
print(C_A_Add)
C_B.do_something(0.20)  # C_B.data = 200 * 0.80 = 160
print(C_B)
C_C.do_something(0.30)  # C_C.data = 300 * 0.70 = 210
print(C_C)

>>> 
[Class_A : 110.00000000000001]
[Class_A : 120.00000000000001]
[Class_A : 160.0]
[Class_C] : 210.0]
>>> 


(精度问题可以再看看 数字 类型)


一、Python 中的类可以多基类继承

二、由于Python是动态语言,所以类的属性、方法可以在运行时动态装配

三、不用解释,Python 天生支持多态

四、Python 不需要 Interface ,每个对象都是自描述的,不需要画蛇添足的再弄出个 Interface 出来

五、Python 同样不需要抽象类......

六、进行企业开发可能用到的东西

1、GUI: PyQt、wxPython

2、Web:Django、TurboGears、Pylons、Web2Py、Zope

3、数据库:

OODB:ZODB

ERDB:MySQL、PostgreSQL、SQLite

4、ORM: SQLObject、SQLAlchemy


小结:

 除了很多概念,C#的经验在 Python 中没有多少帮助,反而十几年前用VFP的很多东西回想起来了......

下午从第28章开始


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值