python------Socket网略编程+动态导入模块

上节课程回顾:

静态变量:与类无关,不能访问类里的任何属性和方法。

类方法:只能访问类变量。

属性:把一个方法变成静态属性,

反射:

__new__:先于__init__执行;

__call__:

1 class Foo(object):
2     def __call__()
3         print "call"   #这是什么???
4
5 #Foo()  #后面跟一个括号是实例化
6 Foo()()  #后面跟2个括号是执行call方法

异常处理:

断言(assert): 返回为假就不往下执行了。(例如银行转账,要确保正确才能转账)

例如:assert type(XXX) is str

本节内容:

一.动态导入模块

1 import importlib
2
3 __import__(‘import_lib.metaclass‘) #这是解释器自己内部用的
4 #importlib.import_module(‘import_lib.metaclass‘) #与上面这句效果一样,官方建议用这个

#__metaclass__用来定义这个类以怎样的形式被创建(我们很少用到)

原文地址:https://www.cnblogs.com/bltstop/p/9782854.html

时间: 2024-10-10 04:34:37

python------Socket网略编程+动态导入模块的相关文章

【Python学习之旅】---动态导入模块

#当一个模块名为字符窜的时候#第一种方式a=__import__('test.123')a.123 #a拿到的是最顶级的模块test ,然后调用123 #第二种方式import importlib #导入模块a=importlib.import_module('test.123') #调用方法拿到的直接是test.123 原文地址:https://www.cnblogs.com/chenyuxia/p/12147079.html

python中动态导入模块

如果导入的模块不存在,Python解释器会报 ImportError 错误: >>> import something Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named something 有的时候,两个不同的模块提供了相同的功能,比如 StringIO 和 cStringIO 都提供了Strin

Python动态导入模块

如果导入的模块不存在,Python解释器会报 ImportError 错误: >>> import something Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named something 有的时候,两个不同的模块提供了相同的功能,比如 StringIO 和 cStringIO 都提供了Strin

Python 动态导入模块

动态导入模块 目录结构: zhangsandeMacBook-Air:1110 zhangsan$ tree . . ├── lib │   └── aa.py ├── test1.py lib目录下有一个aa.py文件,其中C类中有一个属性name: class C: def __init__(self): self.name = 'zhangsan' 在test1.py文件中需要动态导入aa这个模块有两种办法: 第一种: lib = __import__('lib.aa') obj = li

python 反射 动态导入模块 类attr属性

1.反射 hasattr getattr delattr setattr 优点:事先定义好接口,接口只有在被完成后才能真正执行,这实现了即插即用,这其实是一种“后期绑定”,即先定义好接口, 然后是再去实现具体的功能 print(hasattr(p, 'age')) # True 是否有属性 判断 print(getattr(p, 'name', '没有找到该参数')) # get属性值 print(getattr(p, 'name1', 'False')) # False setattr(p,

Python importlib(动态导入模块)

使用 Python importlib(动态导入模块) 可以将字符串型的模块名导入 示例: import importlib module = 'module name' # 字符串型模块名 test = importlib.import_module(module) # 导入模块 print(test.Class().attr) # 打印 Class 类的 attr 属性 原文地址:https://www.cnblogs.com/dbf-/p/10667248.html

Python 实现接口类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)

实现接口类的两种方式 方式一 from abc import ABCMeta from abc import abstractmethod class BaseMessage(metaclass=ABCMeta): @abstractmethod def send(self,subject,body,to,name): pass 方式二 class BaseMessage(object): def send(self, subject, body, to, name): raise NotImp

Python随心记--反射、动态导入模块

hasatttr(object,name) #检测对象中是否存在name属性getattr(object,name,delault = Null)setattr(object,x,True)delattr(object,x) #删除属性 class BlackMedium: feture = 'Ugly' def __init__(self,name,addr): self.name = name self.addr = addr def sell_hourse(self): print('[%

Python30 动态导入模块/断言

动态导入模块 方式1(解释器调用) 根据当前目录结构进行动态导入模块设置 #在A1.py中 from code1 import aa #使用该方式就可以导入aa这个模块 #在A1.py中 modname = 'aa' from code1 import modname #如果通过导入字符串的方式,来导入模块就会报错,因为modname = 'aa',只是一个字符串形式,不是一个模块 #在A1.py中 mod1 = __import__('code1') #当前只导入了code1这个路径 mod2