面向对象编程(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)和部分面向对象高级编程的主要内容,如果未能解决你的问题,请参考以下文章