最近我有一个想法,即编写一个模块将字典转换为有效的CSS
代码。我想听听你对我的代码的评论。 许可证MIT,BSD等提高Python中代码模块质量的建议
的代码非常简单:
#pss.py
__version__ = '1.0'
class PSS:
def __init__(self, obj):
self.obj = obj
self.__data = {}
self.__parse(obj)
def __repr__(self):
return self.__build(self.obj)
def __build(self, obj, string = ''):
for key, value in sorted(self.__data.items()):
if self.__data[key]:
string += key[1:] + ' {\n' + ''.join(value) + '}\n\n'
return string
def __parse(self, obj, selector = ''):
for key, value in obj.items():
if hasattr(value, 'items'):
rule = selector + ' ' + key
self.__data[rule] = []
self.__parse(value, rule)
else:
prop = self.__data[selector]
prop.append('\t%s: %s;\n' % (key, value))
导入模块:
#test.py
from pss import *
css = PSS({
'html': {
'body': {
'color': 'red',
'div': {
'color': 'green',
'border': '1px'
}
}
}
})
print(css)
结果:
html body {
color: red;
}
html body div {
color: green;
border: 1px;
}
所以我需要你的建议,以改进代码质量
我想你应该在[coderiview](http://codereview.stackexchange.com/)上提问你的问题 – shenshei 2012-02-07 15:45:30
为什么'PSS'类看起来非常像一个函数,它需要一个字典并返回一个字符串? – 2012-02-07 15:47:35
@shenshe,谢谢你,我不知道那个 – 2012-02-07 15:47:55