zoukankan      html  css  js  c++  java
  • python中schedule模块的简单使用 || importlib.import_module动态导入模块

     1 import schedule
     2 import time
     3 
     4 def start():      #定义一个函数
     5     print("****")
     6 
     7 
     8 if __name__ == '__main__':
     9     schedule.every(2).seconds.do(start)  #它的意思就是每隔2秒执行一次start函数
    10     while True:  #这里就是定义一个死循环
    11         schedule.run_pending()  //每次检查一下两秒间隔到了没有
    12         time.sleep(1)    //这个就是让程序休眠几秒

    除了可以间隔多少秒执行一次函数,还可以间隔多少分钟、小时

    1、间隔两小时

    schedule.every(2).hours.do()

    2、间隔两分钟

    schedule.every(2).minutes.do()

    importlib.import_module动态导入模块

    先看目录结构

     项目xiang1里面有一个python包为a。a包里面有一个python文件aa.py和一个包b。b包里面有一个python文件bb.py和一个包c。c包里面有一个python文件cc.py

    前提条件:

    aa.py,bb.py,cc.py三个文件里面都有一个同样的类

    class People(object):
    
        def __init__(self,age,name='嘿嘿'):
            self.age=age
            self.name=name
    

    1、把aa.py中People类导入到cc.py

    import importlib
    
    module = importlib.import_module('a.aa')  
    classes = getattr(module,'People')
    peo = classes(1)
    
    print(peo.__dict__)

    输出结果

    {'age': 1, 'name': '嘿嘿'}

    注释:

    importlib.import_module这个方法是导入一个模块,有两种导入方式

    1、绝对路径导入

    2、相对路径导入(相对路径的例子在下面)

    这种导入方式用的是绝对路径导入,绝对路径只能包括包名或者python文件名。所以没有写成“xiang1.a.aa”而写成了“a.aa”

    getattr函数要传两个参数,一个是你要从哪个模块里面导入哪个内容。(这两个哪个,就分别对应它的两个参数)

    2、把bb.py中People类导入到cc.py

    import importlib
    
    module = importlib.import_module('a.b.bb')
    classes = getattr(module,'People')
    peo = classes(1)
    
    print(peo.__dict__)
    '''
    输出结果:
    {'age': 1, 'name': '嘿嘿'}
    '''

    3、把bb.py中People类导入到aa.py

    import importlib
    
    module = importlib.import_module('.b.bb','a')
    classes = getattr(module,'People')
    peo = classes(1)

    输出结果还是上面那个

    注释:

    这个就用到的是相对路径导入,这个时候你的路径名就是以   ‘./’   来开头的。而且要传两个参数

    1、第一个参数是相对路径

    2、第二个参数是以谁为相对路径(哪个谁就是第二个参数)

    importlib手册

  • 相关阅读:
    面向对象:类的基础
    Apache:dbutils 开源JDBC工具类库
    JDBCToolsV3 :DAO
    JDBCToolsV2:利用ThreadLocal保证当前线程操作同一个数据库连接对象。
    JDBC: ThreadLocal 类
    JDBCTools 第一个版本
    数据库连接池
    JDBC:处理事务
    应变片安装
    博客园 PT100 烟温隔离板资料
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/12166342.html
Copyright © 2011-2022 走看看