返回顶部
首页 > 资讯 > 后端开发 > Python >python摸爬滚打之day18----
  • 142
分享到

python摸爬滚打之day18----

摸爬滚打python 2023-01-30 22:01:10 142人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

1、issubclass(a,b)  ----> 判断a是否是b的子类.    isinstance(a,b)  ----> 判断a这个对象是否是b类型的(可以向上判断, 即考虑继承关系往父类判断)    type(a)  -

1、issubclass(a,b)  ----> 判断a是否是b的子类.

   isinstance(a,b)  ----> 判断a这个对象是否是b类型的(可以向上判断, 即考虑继承关系往父类判断)

   type(a)  ----> 获取到a对象的类型, type是不考虑继承关系的.

 1 class Animal:
 2     pass
 3 class Cat(Animal):
 4     pass
 5 class LanCat(Cat):
 6     pass
 7 
 8 c = Cat()
 9 l = LanCat()
10 print(isinstance(Cat(),Animal))    #  True  判断前者是否是后者的一个对象
11 print(issubclass(Cat,Animal))     #  True  判断cat是不是animal的子类
isinstance

2、区分函数和类的成员方法

  结论: 1, 对象访问的, 就是方法; 类名访问的, 就是函数;

       2, 对于静态方法, 都是函数;

       3, 对于类方法, 都是方法(任何类其实都是type类的对象,即对象访问)

  from types import FunctionType, MethodType

  print( isinstance(xxx, FunctionType) )

  print( isinstance(xxx, MethodType) )

3、反射 

  通过字符串的形式从对象中动态的获取成员.

     hasattr(obj,str) ----> 判断obj中是否有str成员(最常用)

  getattr(obj,str) ----> 从obj中获取str成员(最常用)

  setattr(obj,str,new) ----> 将obj中的str进行重写, 重写内容为new内容

  delattr(obj,str) ----> 删除obj中的str成员

  说明:

    以上操作都是对内存中的文件进行修改的, 并不会影响源代码.

 1 class Base:
 2     base = "父类的"
 3     def chi(self):
 4         print("吃的开心")
 5     def he(self):
 6         print("喝的好撑")
 7 
 8 class Sclass(Base):
 9     son = "子类的"
10     def __init__(self,name):
11         self.name = name
12     def wan(self):
13         print("玩得舒服")
14 p = Sclass("防滑链")
15 
16 print(getattr(p,"name"))
17 print(getattr(p,"son"))
18 print(getattr(Sclass,"son"))
19 print(getattr(p,"base"))
20 print(getattr(Base,"base"))
21 
22 print(getattr(p,"wan"))         # 从对象里找,找到的是wan()方法的内存地址
23 print(getattr(Sclass,"wan"))    # 从类里找,找到的是wan()函数的内存地址.
24 print(getattr(p,"wan")())
25 
26 # 如果想反射到别的.py文件,就必须导入 "import py文件名" ,getattr(py文件名.类名,str)
反射

  反射的另类用法: 通过字符串导入模块(原理不是反射, 只是有步骤用到了反射)

1 path = "字符串导入模块.example.fanshe"      # 模块路径
2 import importlib
3 inp = input("请输入要查看的类别[f1,f2,f3]: ")
4 m = importlib.import_module(path)       # 通过字符串的形式来导入模块
5 if hasattr(m.Cate,inp):     #  m.Cate, 即inp是否在类的成员方法里面, 不能写直接写m, 找不到的
6     obj = m.Cate()          #  创建obj对象
7     print(getattr(obj,inp)())
8 else:
9     print("不存在此类别.")
通过字符串导入模块

 

--结束END--

本文标题: python摸爬滚打之day18----

本文链接: https://lsjlt.com/news/180155.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python摸爬滚打之day18----
    1、issubclass(a,b)  ----> 判断a是否是b的子类.    isinstance(a,b)  ----> 判断a这个对象是否是b类型的(可以向上判断, 即考虑继承关系往父类判断)    type(a)  -...
    99+
    2023-01-30
    摸爬滚打 python
  • python摸爬滚打之day01----
    1、编程语言分类   编译型语言:程序被一次性全部翻译成机器语言,计算机直接以机器语⾔言来运⾏行行此程序。     优点:运行效率高,可脱离语言环境独立运行。     缺点:开发效率低,可移植性差。   解释型语言:将程序逐条地翻译成机器...
    99+
    2023-01-30
    摸爬滚打 python
  • python摸爬滚打之day02----
    1、while循环   1.1  结构:while +条件判断:           while 循环体        else:           条件不成立时语句块        while...else...是一个循环整体,当循环...
    99+
    2023-01-30
    摸爬滚打 python
  • python摸爬滚打之day03----
    1、数据类型转换   字符串 ----> bool  print( bool("hello") )  -----> True   数字----> bool  print( bool(911) )  -----> T...
    99+
    2023-01-30
    摸爬滚打 python
  • python摸爬滚打之day07----
    1、补充   1.1  join()字符串拼接. 1 strs = "阿妹哦你是我的丫个哩个啷" 2 nw_strs = "_".join(strs) 3 print(nw_strs) # 阿_妹_哦_你_是_我_的_丫_个_哩...
    99+
    2023-01-30
    摸爬滚打 python
  • mycat学习02--摸打滚爬之mycat主从复制于读写分离(线上经验)
    上一篇文章讲到了mycat的安装和配置,相信验证过的朋友已经知道了,上一篇的做法已经实现了主从复制与读写分离的效果,这里给大家详细说以下读写分离部分:我的架构还是双主双从架构:(试验环境1主一从)效果一样,...
    99+
    2024-04-02
  • 两年摸爬滚打 Spring Boot,总结了这 16 条最佳实践
    Spring Boot是最流行的用于开发微服务的Java框架。在本文中,我将与你分享自2016年以来我在专业开发中使用Spring Boot所采用的最佳实践。这些内容是基于我的个人经验和一些熟知的Spring Boot专家的文章。在本文中,...
    99+
    2023-06-02
  • 【Python】Python爬虫之Sel
    XPath 语法 XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。 XML 实例文档 我们将在下面的例子中使用这个 XML 文档。 <...
    99+
    2023-01-31
    爬虫 Python Sel
  • python 爬虫之BeautifulS
    import urllib2url = 'http://www.someserver.com/cgi-bin/register.cgi'values = {}values['name'] = 'Michael Foord'values['l...
    99+
    2023-01-31
    爬虫 python BeautifulS
  • Python之爬虫基础
    网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫...
    99+
    2023-08-31
    python 爬虫 开发语言
  • 08 Python爬虫之selenium
    ---恢复内容开始--- 一. 先介绍图片懒加载技术   当获取一个网站的图片数据时,只能爬取到图片的名称,并不能获得链接,而且也不能获得xpath表达式。这是应用了图片懒加载技术。   - 图片懒加载技术的概念:     -- 图片懒加...
    99+
    2023-01-31
    爬虫 Python selenium
  • python之网络爬虫
    一、演绎自已的北爱         踏上北漂的航班,开始演奏了我自已的北京爱情故事二、爬虫11、网络爬虫的思路首先:指定一个url,然后打开这个url地址,读其中的内容。其次:从读取的内容中过滤关键字;这一步是关键,可以通过查看源代码的方式...
    99+
    2023-01-31
    爬虫 网络 python
  • python爬虫之爬取百度翻译
    破解百度翻译 翻译是一件麻烦的事情,如果可以写一个爬虫程序直接爬取百度翻译的翻译结果就好了,可当我打开百度翻译的页面,输入要翻译的词时突然发现不管我要翻译什么,网址都没有任何变化,那...
    99+
    2024-04-02
  • python爬虫之爬取笔趣阁小说
    目录前言一、首先导入相关的模块二、向网站发送请求并获取网站数据三、拿到页面数据之后对数据进行提取四、获取到小说详情页链接之后进行详情页二次访问并获取文章数据五、对小说详情页进行静态页...
    99+
    2024-04-02
  • Python爬虫之爬取二手房信息
    前言 说到二手房信息,不知道你们心里最先跳出来的公司(网站)是什么,反正我心里第一个跳出来的是网站是 58 同城。哎呦,我这暴脾气,想到就赶紧去干。 但很显然,我失败了。说显然,而不...
    99+
    2024-04-02
  • python爬虫之selenium模块
    目录一、什么是Selenium二、selenium安装1、PhantomJS: 无可视化界面的浏览器(无头浏览器)2、下载浏览器驱动三、selenium基本使用1、声明浏览器对象He...
    99+
    2024-04-02
  • python反爬之懒加载
    # 在平时的爬虫中,如果遇到没有局部刷新,没有字体加密,右键检查也能看到清晰的数据,但是按照已经制定好的解析规则进行解析时,会返回空数据,这是为什么呢,这时可以在网页右键查看一下网页源代码,可以发现,在网页上的源代码中有些部分是正确的,...
    99+
    2023-01-30
    加载 python
  • python培训入门之python爬虫
    老男孩教育python培训教你用python爬虫开发技术网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引...
    99+
    2023-01-31
    爬虫 入门 python
  • python爬虫之爬取谷歌趋势数据
    一、前言  爬取谷歌趋势数据需要科学上网~ 二、思路 谷歌数据的爬取很简单,就是代码有点长。主要分下面几个就行了 爬取的三个界面返回的都是json数据。主要获取对应的tok...
    99+
    2024-04-02
  • Python爬虫实战之爬取携程评论
    目录一、分析数据源二、分析数据包三、采集全部评论一、分析数据源 这里的数据源是指html网页?还是Aajx异步。对于爬虫初学者来说,可能不知道怎么判断,这里辰哥也手把手过一遍。 提示...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作