Python面向对象编程

python 面向对象编程

Python 面向对象编程的三大特征:封装,继承,多态

封装:通过内部把数据封装,在外部就可直接通过方法调用而无需知道逻辑

继承:类可以继承其父类的所有属性和方法

多态:不同类可以有相同的方法名

(1)
python 中的公有与私有

python默认数据类型都是公有,可通过在__属性名来声明私有,一旦声明私有后,在解释器中的属性名就不再是__属性名,而是_类__属性名

要访问或修改私有属性最好通过在类内部定义方法来访问或修改

class Student(object):
    def __init__(self, name, score):
        self.__name = name
        self.__score = score
    def print_score(self):
        print('%s: %s' % (self.__name, self.__score))
a=Student('aa',60)
a.__name='bb'
a.print_score()
aa: 60
a.__name
Out[6]: 'bb'
a.__doc__
print(a.__dict__)
{'_Student__name': 'aa', '_Student__score': 60, '__name': 'bb'}
class Student(object):
    def __init__(self, name, gender):
        self.name = name
        self.__gender = gender
    def get_gender(self):
        return self.__gender
    def set_gender(self,value):
        self.__gender=value
        
bart = Student('Bart', 'male')
if bart.get_gender() != 'male':
    print('测试失败!')
else:
    bart.set_gender('female')
    if bart.get_gender() != 'female':
        print('测试失败!')
    else:
        print('测试成功!')
        
测试成功!

(1)    
多态:著名的开闭原则:开:对扩展开放,可扩展子类

闭:对外部函数修改闭合,无需修改即可实现

(2)    
对于静态语言(例如Java)来说,如果需要传入Animal类型,则传入的对象必须是Animal类型或者它的子类,否则,将无法调用run()方法。

对于Python这样的动态语言来说,则不一定需要传入Animal类型。我们只需要保证传入的对象有一个run()方法就可以了:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值