python面向对象的理解

面向对象的三大特性:

1、封装 根据职责属性方法封装到一个抽象的类内 
2、继承 主要是为了实现代码的重用,相同的代码不需要重复的编写 
3、多态 不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度 
python中一切皆对象,包括变量,数据,函数等等内容

引用在面向对象中的应用:

  • 在python中使用类创建对象后,对象名中记录的是创建出来对象的内存地址,也就是使用了一个变量名引用了新建的对象
  • 使用print函数,传入对象名称,可以得到这个变量引用的对象是由哪个类创建的对象,以及他在内存中的地址(是以十六进制来表示的)
  • %d 可以输出十进制的数字
  • %x 可以输出十六进制的数字

self 的引用:

  • 定义类的方法时,需要设置self参数
  • 由哪一个对象调用了此方法,那么self就是哪一个对象的引用,self就等同于创建的对象名字
  • 调用方法时,无需传递此参数,会自动将对象的引用传入
  • 方法内部,可以通过self. 访问对象的属性,也可以通过self. 调用其他的对象方法

初始化方法:

  • 在日常开发中,不应使用在类外部给对象增加属性,因为一旦找不到程序会报错
  • 对象包含的属性,应当在类中通过__init__ 内置方法来设置
  • 当创建对象时,会自动为对象在内存中分配空间,并未对象的属性设置初始值,就输init方法中定义的属性
  • init方法是专门用来定一个类具有哪些属性的方法

 

这样就确保了外部代码不能随意修改对象内部的状态,这样通过访问限制的保护,代码更加健壮。

但是如果外部代码要获取name和score怎么办?可以给Student类增加get_name和get_score这样的方法:

class Student(object):
    ...

    def get_name(self):
        return self.__name

    def get_score(self):
        return self.__score

如果又要允许外部代码修改score怎么办?可以给Student类增加set_score方法:

class Student(object):
    ...

    def set_score(self, score):
        self.__score = score

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值