这篇文章主要为大家展示了“如何理解python面向对象编程,Python面向对象编程基础的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让我们一起研究并学习一下“如何理解python面向对象编程,Python面向对象编程基础的示例分析”这篇文章吧 。
文章插图
1、类的定义
Python中类的定义与对象的初始化,在python中所有类的父类都是object,需要继承 。
由于Python是动态语言,因此可以直接为对象添加属性并赋值而不用在类定义中声明
例如:
class person(object): # 定义一个person类 passp = person() # 初始化一个Person对象p.name="xiaoxiao" # 对象属性赋值这里的person是直接在class中定义的变量我们称它为类属性,如果是在_init_中定义的就为对象属性,对象属性有权访问不能进行修改,而类属性则对所有对象共享 。请记住以_开头的类都是私有变量,无法被外部访问 。这时候就需要对象的实例方法进行操作,实例方法的第一个参数默认为self代表对象自己 。下面看一个例子:
lass person(object): count = 0 # 类属性 @classmethod: def get_count(cls): # 类方法 return cls.count def __init__(self,name,gender,birth,**kw): person.count+=1 # 访问类属性 self.name = name self.__gender = gender self.birth = birth for k, v in kw.iteritems(): # 遍历之后的键值对,设置属性 setattr(self, k, v) def get_name(self): # 定义实例方法 return self.__namexiaoxiao = person('XiaoXiao', 'famale', '2022-7-8', job='worker')xiaoxiao.count==9 # 为对象创建属性,不会修改person.countprint(xiaoxiao.job) # 显示worker print(xiaoxiao.__gender) # 无法访问,抛出异常AttributeErrorprint(xiaoxiao et_name()) # 通过实例方法访问内部变量2、类的继承
举个例子:
class person(object): def __init__(self, name, gender): self.name = name self.gender = genderclass Teacher(person): # 继承父类person def __init__(self, name, gender, course): super(Teacher,self).__init__(name,gender) # 调用父类的初始化函数 self.course= course # 完成子类变量的初始化t = Teacher('Alice', 'Female', 'English')print(isinstance(t, person)) # 结果为True,子类也是父类的类型print(dir(t))【如何理解python面向对象编程?Python面向对象编程基础的示例分析】# 显示对象的所有属性,dir()方法返回变量的所有属性和方法列表
以上代码需要注意的是在子类Teacher中是借助super(子类名,self)调用父类的初始化函数来完成对父类中参数的初始化,还可以直接通过父类名称调用父类的方法通过type()方法输出变量的类型,isinstance()可以判断变量是否是某个类型,dir()方法返回变量的所有属性和方法列表 。输出对象t的属性结果如下,其中带__的为默认属性,其余为自定义的属性 。
以上就是有关如何理解python面向对象编程,Python面向对象编程基础的示例分析”的讲解,想要学习更多的内容,可继续关注哦!
推荐阅读
- python的基本格式有哪些?什么是python的基本格式?
- 什么是Python多态?python中什么是类的多态?
- Python如何实现列表拼接?Python实现列表拼接的方法有哪些?
- 什么是operator模块?Python中operator模块如何使用?
- 如何实现Python列表去重?Python列表去重的方法有哪些?
- 如何配置pycharm终端解释器? pycharm终端解释器的配置方法
- 如何通过python实现循环队列?python循环队列方法
- python中怎么写for语句?如何使用for语句实现倒三角的九九乘法表?
- python中局部变量和全局变量有什么用?如何理解局部变量和全局变量?
- python数据类型有哪些?python基本数据类型