forked from zhanghe06/python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_reflect.py
68 lines (52 loc) · 941 Bytes
/
test_reflect.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env python
# encoding: utf-8
"""
@author: zhanghe
@software: PyCharm
@file: test_reflect.py
@time: 2018-07-27 14:07
"""
# 假设有以下结构的包
"""
├── abcd
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── ff.py
│ └── ff.pyc
"""
# ff.py
"""
#!/usr/bin/env python
# encoding: utf-8
class Gg(object):
def __init__(self):
pass
def cc(self):
return 1
"""
s = 'abcd.ff'
# 方式一
# c = __import__(s)
# print(c)
# print(type(c))
#
# print('')
# print(c.ff.Gg)
# print(getattr(getattr(c, 'ff'), 'Gg'))
# print(c.ff.Gg == getattr(c.ff, 'Gg'))
#
# print('')
# print(c.ff.Gg().cc)
# print(c.ff.Gg().cc())
# 方式二
c = __import__(s, fromlist=True)
print(c)
print(type(c))
print('')
print(c.Gg)
print(getattr(c, 'Gg'))
print(c.Gg == getattr(c, 'Gg'))
print('')
print(c.Gg().cc)
print(c.Gg().cc())
# https://www.cnblogs.com/yyyg/p/5554111.html