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

2023-06-28,,

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)和部分面向对象高级编程.doc》

下载本文的Word格式文档,以方便收藏与打印。