这篇文章主要为大家展示了“如何理解python面向对象编程,Python面向对象编程基础的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让我们一起研究并学习一下“如何理解python面向对象编程,Python面向对象编程基础的示例分析”这篇文章吧。
1、类的定义
Python中类的定义与对象的初始化,在python中所有类的父类都是object,需要继承。
由于Python是动态语言,因此可以直接为对象添加属性并赋值而不用在类定义中声明
例如:
class person(object): # 定义一个person类 pass p = 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.__name xiaoxiao = person('XiaoXiao', 'famale', '2022-7-8', job='worker') xiaoxiao.count==9 # 为对象创建属性,不会修改person.count print(xiaoxiao.job) # 显示worker print(xiaoxiao.__gender) # 无法访问,抛出异常AttributeError print(xiaoxiao et_name()) # 通过实例方法访问内部变量
2、类的继承
举个例子:
class person(object): def __init__(self, name, gender): self.name = name self.gender = gender class 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))
# 显示对象的所有属性,dir()方法返回变量的所有属性和方法列表
以上代码需要注意的是在子类Teacher中是借助super(子类名,self)调用父类的初始化函数来完成对父类中参数的初始化,还可以直接通过父类名称调用父类的方法通过type()方法输出变量的类型,isinstance()可以判断变量是否是某个类型,dir()方法返回变量的所有属性和方法列表。输出对象t的属性结果如下,其中带__的为默认属性,其余为自定义的属性。
以上就是有关如何理解python面向对象编程,Python面向对象编程基础的示例分析”的讲解,想要学习更多的内容,可继续关注哦!
更多python相关文章请访问分类:python
【版权声明】本文图文出自大盘站@dapan.cc,转载请注明出处!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。