首页 > 编程语言 > 详细

python :动态模块导入、反射、异常、断言 学习笔记

时间:2019-08-31 11:51:00      阅读:55      评论:0      收藏:0      [点我收藏+]

小知识点:

动态导入模块:

技术分享图片
# from socke import applicant as c
import importlib
# mod =__import__(‘socke.applicant‘)# 这是解释器自己内部用  mod相当于socke  一般不用,用下面的
mod=importlib.import_module(socke.applicant)#mod == applicant
mod.aa()
动态导入

反射知识点:

  反射:通过字符串映射或修改程序运行时的状态、属性、方法,有以下4个方法

  getattr (object, name, default=None) # 获取字符串所映射的方法

  hasattr (obiect, name) #判断一个obj对象里是否有对应的字符串str的方法

  setattr(x, Y, v) #加字符串所反射的方法到对象里

  delattr(x, y) del x.y

技术分享图片
class Dog(object):
    ‘‘‘
        This is dog class
    ‘‘‘
    def __init__(self,name):
        self.name = name
        self.age =33

    def eat(self):
        print(" %s is eating"%self.name)

    def run(self):
        print(" %s is running"%self.name)

    def sleep(self):
        print(" %s is sleeping"%self.name)

def bulk(name):
    print("%s is bulking"%name)

if __name__ == __main__:
    d = Dog(bb)
    opt = input(">>:")
    if hasattr(d,opt):
        getattr(d,opt)()
        # delattr(d, opt)
        # getattr(d,opt)
    #     setattr(d,opt,‘leo‘)
    else:
        # setattr(d,opt,bulk)#在对象里加一个方法
        # d.talk(d.name)
        # setattr(d, opt, 3)  #在对象里加一个属性
        # print(getattr(d,opt))
        print(d.name)
反射

异常:

技术分享图片
class MyException(Exception):
    def __init__(self,msg):
        self.msg =msg

    def __str__(self):
        # return self.msg
        return 自定义异常:[%s]%self.msg

try:
    print(try)
    raise MyException(你傻了)
except MyException as e:
    print( e)
except KeyError as e:
    print("error1", e)
except IndexError as e:
    print("error2", e)
except Exception as e:
    print("未知错误",e)
else:
    print("一切正常")
finally:
    print("不管有没有错都执行")
自定义异常

断言:

  作用:如果后面的程序很重要,一直行必须正确。先断言,只要错误就不执行后面。

技术分享图片
a = "dsd"

try:

    assert type(a) is str
    print("断言成功")
except AssertionError as e:
    print("断言失败",e)

‘‘‘
相当于
‘‘‘
if type(a) is str:
    print("断言成功")
else:
    print("断言失败")
断言

 

 

 

python :动态模块导入、反射、异常、断言 学习笔记

原文:https://www.cnblogs.com/gtq7512/p/11438110.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!