Python+Selenium之(二)-Python中类/函数/模块的简单介绍和方法调用

本文介绍了在Python中如何定义和使用类、函数以及模块。通过示例代码,解释了类的定义(包括父类和继承)、函数(包括实例方法、类方法和静态方法)的定义,以及对象和类调用方法的方式。强调了Python支持面向过程和面向对象编程,建议读者通过实践来加深理解。此外,还讨论了Python模块的概念,一个.py文件即为一个模块,模块中可以定义多个类和函数,并需要通过导入语句来访问不同包下的内容。文章以一个使用类调用实例的百度搜索脚本为例,帮助读者巩固所学。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前篇文章介绍了PyCharm的基本使用,接下来我们的脚本代码都在这个PyCharm这个编辑器里写。好处有很多,项目文件结构层次清晰,写代码的时候会自动化提示和补全。这里,我们在昨天创建的项目下,新建一个包,然后在包下面新建一个demo.py文件。抄写以下代码到你的环境里,尝试运行下,看看有没有问题。

关于Python中类和函数及方法的调用,我们写在这个demo.py文件,具体代码如下:

 

  1. # coding=utf-8

  2.  
  3. class ClassA(object):

  4.  
  5. string1 = "这是一个字符串。"

  6.  
  7. def instancefunc(self):

  8. print ('这是一个实例方法。')

  9. print (self)

  10.  
  11. @classmethod

  12. def classfunc(cls):

  13. print ('这是一个类方法。')

  14. print (cls)

  15.  
  16. @staticmethod

  17. def staticfun():

  18. print ('这是一个静态方法。')

  19.  
  20.  
  21. test = ClassA() # 初始化一个ClasssA的对象,test是类ClassA的实例对象

  22. test.instancefunc() # 对象调用实例方法

  23.  
  24. test.staticfun() # 对象调用静态方法

  25.  
  26. test.classfunc() # 对象调用类方法

  27.  
  28. print test.string1 # 对象调用类变量

  29.  
  30. ClassA.instancefunc(test) # 类调用实例方法,需要带参数,这里的test是一个对象参数

  31. ClassA.instancefunc(ClassA) # 类调用实例方法,需要带参数,这里的ClassA是一个类参数

  32. ClassA.staticfun() # 类调用静态方法

  33. ClassA.classfunc() # 类调用类方法

 

备注:

先运行下代码是否会报错,然后尝试自己去理解下。主要有以下几点内容

1. 类的定义,class开头的就表示这是一个类,小括号里面的,表示这个类的父类,涉及到继承,默认object是所有类的父类。python中定义类,小括号内主要有三种:1. 具体一个父类,2. object 3. 空白

2. 函数或方法的定义, def开头就表示定义一个函数,方法包括,实例方法,类方法,静态方法,注意看类方法和静态方法定义的时候上面有一个@标记。

3. 对象调用方法和类调用方法的使用。

       这篇讲的东西,确实比较难理解。如果学过java的人,可能会好理解类和对象,以及面向对象的概念。Python同时支持面向过程变成和面向对象编程,所有python中也有类和对象等概念。一般来说,概念的东西比较绕,如果你Python基础没有看到这部分,那边请回去《看笨方法学python》中关于这块的介绍。如果有看过了,还是不理解,我只能告诉你,继续学下去,你现在哪怕死记住这些概念和他们的基本使用。等到后面,框架设计部分,你会慢慢体会到这些基本概念的实际用法,你跟着写了代码后,会有助于你自己的理解和提高。

       最后,来说下python中的模块,在python中,你新建一个demo.py文件,那么一个.py文件可以说是一个模块,一个模块中,可以定义多个class,模块中也可以直接定义函数。和java一样,访问不同包下的类和方法之前,需要导入相关路径下的包。例如from selenium import webdriver  这个导入语句,我们知道webdriver这个接口是在selenium的模块下。

本篇文章的学习目的,会用函数或者类来编写我们之前写过的脚本。

以下用百度搜索举例,模仿上面用类调用实例的方法来写这个脚本,可能看起来比较啰嗦,但是代码多了,你就会体会到类的作用,注意这里self指的是当前BaiduSearch这个类本身:

 


 
  1. # coding=utf-8

  2. import time

  3. from selenium import webdriver

  4.  
  5.  
  6. class BaiduSearch(object):

  7. driver = webdriver.Chrome()

  8. driver.maximize_window()

  9. driver.implicitly_wait(10)

  10.  
  11. def open_baidu(self):

  12. self.driver.get("https://www.baidu.com")

  13. time.sleep(1)

  14.  
  15. def test_search(self):

  16. self.driver.find_element_by_id('kw').send_keys("selenium")

  17. time.sleep(1)

  18. print self.driver.title

  19. try:

  20. assert 'selenium' in self.driver.title

  21. print ('Test pass.')

  22.  
  23. except Exception as e:

  24. print ('Test fail.')

  25. self.driver.quit()

  26.  
  27. baidu = BaiduSearch()

  28. baidu.open_baidu()

  29. baidu.test_search()
     

最后

俺叫小枫,一个成天想着一夜暴富的测试员

(1140267353)一起成长一起加油的伙伴群!软件测试,与你同行!
群内可领取小枫给大家准备的最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

点赞评论关注不迷路!!!【三连?】,有问题也可私聊哟~(*?▽?*)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值