首页 > 编程语言 >Python面向对象

Python面向对象

时间:2022-11-21 13:45:40浏览次数:38  
标签:Python self 面向对象 print 父类 方法 class def

背景:为什么要学类
1.当我们写了很多用例,我们需要组织用例以及测试执行获取测试报告,需要用到标准库unittest(其实就是一个库里面的类);
2.自动化常用的 driver.find_elements_by_xpath(''),其实也是去调用selenium里面一个类的方法

面象对象俩个重要的概念:类(class)和实例(instance)
类是抽象的:用来描述具有相同属性和相同方法的对象的集合;
比如说人类;student类;员工类:
相同的属性:比如都有眼睛,鼻子。
相同的方法(功能):吃饭睡觉,说话
实例:是根据类创建出来的具体的对象;
比如某一个人小明,某一个学生,高三班的张三;
每个对象有相同的属性和方法,但是属性的值都不一样。
实例化:创建一个类的实例,类的具体的对象;

创建类

使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:

class ClassName:
   '类的帮助信息'   #类文档字符串
   class_suite  #类体由类成员,方法,数据属性组成。
例子
class Employee:
'所有员工的基类'
empCount = 0

def __init__(self, name, salary):
self.name = name
self.salary = salary
Employee.empCount += 1

def displayCount(self):
print("Total Employee %d" % Employee.empCount)

def displayEmployee(self):
print("Name : ", self.name, ", Salary: ", self.salary)
empCount 变量:是一个类变量,它的值将在这个类的所有实例之间共享。你可以在内部类或外部类使用 Employee.empCount 访问。
第一种方法__init__()方法:是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法
self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。
self代表的是类的实例,代表当前对象的地址,而self._XXXXX则指向类。

创建实例对象

Python 中类的实例化类似函数调用方式。

可以使用点号 . 来访问对象的属性。

lisi=Employee("李四","软件测试工程师")
lisi.displayEmployee()
print(Employee.empCount)

类的继承

面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。

通过继承创建的新类称为子类派生类,被继承的类称为基类父类超类

继承语法

class 派生类名(基类名)
    ...

class Parent:  # 定义父类
parentAttr = 100

def __init__(self):
print("调用父类构造函数")

def parentMethod(self):
print('调用父类方法')

def setAttr(self, attr):
Parent.parentAttr = attr

def getAttr(self):
print("父类属性 :", Parent.parentAttr)


class Child(Parent): # 定义子类
def __init__(self):
print("调用子类构造方法")

def childMethod(self):
print('调用子类方法')

c = Child() # 实例化子类
c.childMethod() # 调用子类的方法
c.parentMethod() # 调用父类方法
c.setAttr(200) # 再次调用父类的方法 - 设置属性值
c.getAttr() # 再次调用父类的方法 - 获取属性值

方法重写

如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法:

class Parent:  # 定义父类
def myMethod(self):
print( '我是父类方法')


class Child(Parent): # 定义子类
def myMethod(self):
print("我把父类方法重写了")


c = Child() # 子类实例
c.myMethod() # 子类调用重写方法

标签:Python,self,面向对象,print,父类,方法,class,def
From: https://www.cnblogs.com/cyq0528/p/16911158.html

相关文章

  • Python GDAL/OGR常用样例代码
    目录安装案例矢量转栅格栅格转矢量(多边形)矢量叠加矢量擦除缓冲区分析(以点为例)视域分析安装推荐使用conda安装pythongdal环境,先查询gdal可用版本,再指定版本号,按需安装对......
  • python的协程
    python协程库gevent学习--gevent数据结构及实战(三)gevent学习系列第三章,前面两章分析了大量常用几个函数的源码以及实现原理。这一章重点偏向实战了,按照官方给出的ge......
  • Python爬取酷狗音乐Top500首歌曲并下载到本地
    #@Author:林云#@Time:2022/11/2018:05#@File:KuGouYinyue.py#@Project:PycharmProjectsimportjsonimportosfromtimeimportsleepimportrequestsfromlx......
  • python安装virtualenvwrapper报错解决办法
    在执行sudopipinstall virtualenvwrapper时候,会有一个警告,一个报错1、首先报黄色警告:Thedirectory'/Users/lvxiujun/Library/Caches/pip/http'oritsparentdirect......
  • Python字符串的encode与decode研究心得乱码问题解决方法(转)
    ​​Python字符串的encode与decode研究心得乱码问题解决方法(转)​​为什么会报错“UnicodeEncodeError:'ascii'codeccan'tencodecharactersinposition0-1:o......
  • python的base64
    ​​python3.4.1下base64编码问题​​作者:廖师兄 时间:2014-09-05 分类:​​python​​初学py,学的是3.x版本,今天遇到base64编码问题importbase64encodestr=base......
  • Python psutil模块 Process 类
    psutil模块Process类如果需要了解其他跟多理解的=》Python知识点合集 如果需要查看官方手册解读的=》Process类......
  • 【转载】python的魔法方法———A Guide to Python's Magic Methods
    原文地址:https://rszalski.github.io/magicmethods/     =========================================================== AGuidetoPython'sMagicMetho......
  • python list dict util (分割,分组)
     1.list数据分割为多个小列表 (java  lists.partition)2.分组     importitertoolsdefpartition(mylist,size):""":parammylist:需要分......
  • 使用UDP协议实现简单的分布式日志服务, java和python
    使用UDP协议实现简单的分布式日志服务,java和python这几天系统出现问题,需要查原因.日志分散在各个服务器上,查起来很要命.网上百度了好久,最后发现,各种日志的处理......