• python的一些函数setattr(), isinstance(),dump(),eval(),ast.literal_eval()


    1 python中“//”是一个算术运算符,表示整数除法,它可以返回商的整数部分(向下取整)。

    2 setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的;

    setattr(object, name, value)
    • object -- 对象。
    • name -- 字符串,对象属性。
    • value -- 属性值。
    1. >>>class A(object):
    2. ... bar = 1
    3. ...
    4. >>> a = A()
    5. >>> getattr(a, 'bar') # 获取属性 bar 值
    6. 1
    7. >>> setattr(a, 'bar', 5) # 设置属性 bar 值
    8. >>> a.bar
    9. 5

    如果属性不存在会创建一个新的对象属性,并对属性赋值:

    1. >>>class A():
    2. ... name = "runoob"
    3. ...
    4. >>> a = A()
    5. >>> setattr(a, "age", 28)
    6. >>> print(a.age)
    7. 28

    3 Python 中的isinstance()函数,isinstance()是Python中的一个内建函数。是用来判断一个对象的变量类型;

    语法:

    isinstance(object, classinfo)

            如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False;

    与type()区别

            type() 不会认为子类是一种父类类型,不考虑继承关系;

            isinstance() 会认为子类是一种父类类型,考虑继承关系;

            如果要判断两个类型是否相同推荐使用 isinstance();

    1. >>> isinstance(1, int)
    2. True
    3. >>> isinstance(1.0, float)
    4. True
    5. >>>isinstance(1,(int,float))
    6. True
    7. >>> class Myclass:
    8. pass
    9. >>> test = Myclass()
    10. >>> isinstance(test, Myclass)
    11. True

    4 json Python模块中的模块提供了一种称为dump()

    它将Python对象转换为适当的json对象

    5 eval()函数

    其作用就是把数据还原成它本身或者是能够转化成的数据类型:

            将字符串string对象转化为有效的表达式参与求值运算返回计算结果;

    1. >>> s='8*8'
    2. >>> eval(s)
    3. 64
    4. >>> eval('2+5*4')
    5. 22
    6. >>> x=1
    7. >>> y=4
    8. >>> eval('x+y')
    9. 5
    10. >>> eval('98.9')
    11. 98.9
    12. >>> eval('9.9\n')
    13. 9.9
    14. >>> eval('9.9\n\t\r \t\r\n')
    15. 9.9

            eval可以将字符串转换成字典,列表,元组;

    1. >>> l = "[2,3,4,5]"
    2. >>> ll=eval(l)
    3. >>> ll
    4. [2, 3, 4, 5]
    5. >>> type(ll)
    6. <type 'list'>
    7. >>> d="{'name':'python','age':20}"
    8. >>> dd=eval(d)
    9. >>> type(dd)
    10. <type 'dict'>
    11. >>> dd
    12. {'age': 20, 'name': 'python'}
    13. >>> t='(1,2,3)'
    14. >>> tt=eval(t)
    15. >>> type(tt)
    16. <type 'tuple'>
    17. >>> tt
    18. (1, 2, 3)

    6 ast.literal_eval()

            literal_eval()函数:则会判断需要计算的内容计算后是不是合法的Python类型,如果是则进行运算,否则就不进行运算;

            出于安全考虑,对字符串进行类型转换的时候,最好使用ast.literal_eval()

  • 相关阅读:
    遍历Opencv中Mat中每个像素的值
    Linux 环境变量配置的 6 种方法
    科技资讯|9月新能源汽车零售74.3万辆,充电桩迎来发展高峰
    设计模式-状态模式在Java中的使用示例-信用卡业务系统
    【浅学Java】哈希桶的模拟实现以及HashMap原码分析
    如何基于智能识别技术构建工地智能化管理体系?
    springboot + mybatis +mysql 5.7 不使用xmlmapper操作
    EasyCVR接入设备开启音频后,视频无法正常播放是什么原因?
    Python OpenCV 人脸识别
    使用javascript模拟并行位全加法器
  • 原文地址:https://blog.csdn.net/qq_40671063/article/details/126167655