@@ -38,16 +38,114 @@ class BaseResume(object):
3838
3939 # 定义构造方法
4040 def __init__ (self , ** kwargs ):
41+ self .data = kwargs
4142 for key , value in kwargs .iteritems ():
43+ if not hasattr (self , key ):
44+ raise Exception (u'存在不允许的属性' )
4245 self .__setattr__ (key , value )
4346
47+ # 字典方式获取元素
48+ def __getitem__ (self , key ):
49+ return self .data .get (key )
4450
45- if __name__ == '__main__' :
51+ # 字典方式设置元素
52+ def __setitem__ (self , key , value ):
53+ self .data [key ] = value
54+
55+
56+ class DetailResume (object ):
57+ """
58+ 简历详细信息
59+ """
60+ # 定义构造方法
61+ def __init__ (self , ** kwargs ):
62+ for key , value in kwargs .iteritems ():
63+ self .__setattr__ (key , value )
64+
65+
66+ def test_01 ():
67+ print '--------测试 01'
4668 user_info = {
4769 'name' : 'Tom' ,
4870 'age' : 20
4971 }
5072 # base_resume = BaseResume(name='Tom', age=20) # 方式一
5173 base_resume = BaseResume (** user_info ) # 方式二
52- print base_resume .name
53- print base_resume .age
74+ print base_resume .name , base_resume ['name' ]
75+ print base_resume .age , base_resume ['age' ]
76+ # print base_resume.ff
77+ print isinstance (base_resume , BaseResume ) # True
78+ print isinstance (base_resume , DetailResume ) # False
79+
80+
81+ def test_02 ():
82+ print '--------测试 02'
83+ try :
84+ base_resume = BaseResume (name = 'Tom' , age = 20 , ff = 33 ) # 方式一 塞入错误的key
85+ print base_resume .name
86+ print base_resume .age
87+ print base_resume .ff
88+ print isinstance (base_resume , BaseResume ) # True
89+ print isinstance (base_resume , DetailResume ) # False
90+ except Exception , e :
91+ print e .message
92+
93+
94+ def test_03 ():
95+ print '--------测试 03'
96+ try :
97+ data = {
98+ 'base' : {
99+ 'uid' : 100 ,
100+ 'name' : 'Tom' ,
101+ 'sex' : 'M'
102+ },
103+ 'edu' : [
104+ {
105+ 'school' : 'S-ABC' ,
106+ 'degree' : u'学历1' ,
107+ 'major' : u'专业1'
108+ },
109+ {
110+ 'school' : 'S-DEF' ,
111+ 'degree' : u'学历2' ,
112+ 'major' : u'专业2'
113+ }
114+ ],
115+ 'work' : [
116+ {
117+ 'company' : 'C-DGG' ,
118+ 'job' : 'J-DGG'
119+ },
120+ {
121+ 'company' : 'C-FGG' ,
122+ 'job' : 'J-FGG'
123+ },
124+ ]
125+ }
126+ detail_resume = DetailResume (** data )
127+ print isinstance (detail_resume , DetailResume )
128+ print type (detail_resume .work ), detail_resume .work
129+ except Exception , e :
130+ print e .message
131+
132+
133+ if __name__ == '__main__' :
134+ test_01 ()
135+ test_02 ()
136+ test_03 ()
137+
138+
139+ """
140+ 测试结果:
141+ --------测试 01
142+ Tom
143+ 20
144+ True
145+ False
146+ --------测试 02
147+ 存在不允许的属性
148+ --------测试 03
149+ True
150+ <type 'list'> [{'company': 'C-DGG', 'job': 'J-DGG'}, {'company': 'C-FGG', 'job': 'J-FGG'}]
151+ """
0 commit comments