面向对象编程(python)和部分面向对象高级编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象编程(python)和部分面向对象高级编程相关的知识,希望对你有一定的参考价值。

1.类和对象

在python中定义类

class 类名(首字母最好大写)Student (Object(父类)):

  def __init__(self):

  self.属性 1= 参数1

  self.属性2 = 参数2

变量 = Student(类名)

s.属性1 = ‘字符串’

__init__是一个特殊的函数用来初始化对象

self执行当前类的实例化对象

2.访问限制

1)如果不想类中的参数不受限制地赋值,可以在属性的前面添加__(两个双划线)来声明属性为private类型,不允许外部访问

2)如果希望访问呢,那么就通过get方法和set方法来访问

例如:def get_name(self):

    return self.__name

          def set_name(self,name):

    self.__name = name

3.继承和多态

继承就是继承父类的所有特点,而且可以根据自己的情况,修改父类的方法

多态就是可以定义一个参数为父类类型的方法,最后传入,子类对象参数,返回适合子类的方法

4.动态语言就是不需要继承那样,只需要有相同的方法就可以像鸭子一样的走路的那种的“鸭子类型”

5.获取对象信息

1)判断对象信息可以通过type方法,以及函数的判断类型导入import types 语句来通过types判断函数的类型

2)可以通过isinstance()函数来判断对象的类型,将父类以及子类“一网打尽”,还可以通过dir()来判断属性的所有信息

3)可以通过hasattr()函数来判断是否含有该属性信息,setattr()函数可以设置对象的属性信息,getattr()函数可以获取对象的信息

5.实例对象和类对象

1)实例对象会覆盖类对象

2)类对象信息为整个类所共有

3)注意:不要将实例对象与类对象重名

6.slots

slots 就是用来设置对象的属性个数的

7.@property

@property装饰器是来简化参数暴露问题的

1)可以通过设置@property以及属性.setter来控制属性的参数范围以及一些规范

例如

  @property

  def birth(self):

    return self._bitrth

  @birth.setter

  def birth(self,value):

    if not instance(value,int):

      rasie ValueErroe(value must be  an Integer!)

    elif(value<0)|(value>1000):

      rasie ValueError(value must between0-1000!)

    self._birth  = value

2)这个时候实例对象名与方法名不能相同



以上是关于面向对象编程(python)和部分面向对象高级编程的主要内容,如果未能解决你的问题,请参考以下文章

Python之路,Day8 - 面向对象编程进阶

进击的Python第六章:Python的高级应用面向对象编程

Python7 - 面向对象编程进阶

python基础之面向对象高级编程

Python 面向对象之高级编程

python 面向对象编程(高级篇)