之前寫過一篇:《python 封裝-實現 c#實體類》
過程比較複雜,**一堆一堆的的
今天呢,再補發乙個實測可用哦~
1 # -*- coding:utf-8 -*-
2 3 # @version: 1.0
4 # @author: zhangzhipeng
5 # @date: 2015-07-13
6 7 from collections import namedtuple
8 910 class entity(object):
1112 """docstring for entity"""
1314 def __init__(self, class_name, columns, **kwargs):
15 super(entity, self).__init__()
16 _columns = [i.strip() for i in columns.split(" ") if i.strip()]
17 _columns.extend(kwargs.keys())
18 columns = list(set(_columns))
19 entity = namedtuple(class_name, columns)
20 self._entity = entity(**kwargs)
2122 def __getattribute__(self, key):
23 entity = super(entity, self).__getattribute__("_entity")
24 try:
25 return super(entity, self).__getattribute__(key)
26 except:
27 return getattr(entity, key)
2829 def __setattr__(self, key, value):
30 if key == "_entity":
31 super(entity, self).__setattr__("_entity", value)
32 return
33 entity = super(entity, self).__getattribute__("_entity")
34 try:
35 # setattr(entity, key, value)
36 entity.__setattr__(key, value)
37 except:
38 super(entity, self).__setattr__(key, value)
3940
41 if __name__ == '__main__':
42 user =
43 entity = entity("user", "", **user)
44 print entity
45 # print dir(entity)
46 print entity.name, entity.age
47 # print entity.score
4849 entity.score = 200
50 print entity.score
5152 entity.name = 'zhang'
53 print entity.name
5455 entity.*** = "boy"
56 print "***:", entity.***
57
輸出如下:
zhangzhipeng@earth:test$ python entity.py
<__main__.entity object at 0x7f863f08c050>
zhipeng 20
zhang
***: boy
可以把這個當作基類來用,
1 # -*- coding:utf-8 -*-
2 3 # @version: 1.0
4 # @author: zhangzhipeng
5 # @date: 2015-07-13
6 7 from entity import entity
8 910 class userentity(entity):
1112 """docstring for userentity"""
1314
15 if __name__ == '__main__':
16 user =
17 user_entity = userentity("user", "", **user)
18 print user_entity
19 # print dir(user_entity)
20 print user_entity.name, user_entity.age
21 # print user_entity.score
2223 user_entity.score = 200
24 print user_entity.score
2526 user_entity.name = 'zhang'
27 print user_entity.name
2829 user_entity.weibo = 'sina'
30 print user_entity.weibo
31
執行效果:
zhangzhipeng@earth:test$ python user_entity.py
<__main__.userentity object at 0x7f8d38497950>
zhipeng 14
zhang
sina
參考《convert python dict to object?》
建立實體類
下面直奔今天的主題 建立實體類 一點小插曲 接觸abp框架之前,一直都是使用的ef的dbfirst,在那種模式下,我們只要設計好資料庫,然後直接通過模板就生成了實體層,甚至都沒怎麼留意實體層的 是什麼樣子。現在要使用codefirst,就要反過來,先要寫 了,真有點不適應。好吧,為了學好abp,也要...
字典實體類 DictionaryEntry類
dictionaryentry類是乙個字典集合,主要包含的內容是鍵 值對。這種組合方式可以方便地定位資料,其中的 鍵 具備唯一性,類似於資料庫中的 id 乙個id對應一天記錄,而乙個鍵只對應乙個值。使用dictionaryenry類可以方便地設定和檢索資料。雖然被稱為字典集合,但dictionary...
C 反射實體類
using system using system.collections.generic using system.text using system.reflection namespace easysrcoreclass.component.utilcomponent 設定屬性值 public...