这篇文章主要为大家展示了“如何理解python面向对象编程,Python面向对象编程基础的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让我们一起研究并学习一下“如何理解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,转载请注明出处!