Skip to content

Instantly share code, notes, and snippets.

/-

Created August 26, 2017 11:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/7013d926e5b03d30e1c1e0da3f60b480 to your computer and use it in GitHub Desktop.
Save anonymous/7013d926e5b03d30e1c1e0da3f60b480 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
# coding:utf-8
class Ob(object):
def __init__(self, *args, **kwds):
for i in args:
self.__dict__.update(args)
self.__dict__.update(kwds)
def __getattr__(self, name):
return self.__dict__.get(name, self)
def __setattr__(self, name, value):
if value is not None:
self.__dict__[name] = value
def __delattr__(self, name):
if name in self.__dict__:
del self.__dict__[name]
def __repr__(self):
return self.__dict__.__repr__()
__getitem__ = __getattr__
__delitem__ = __delattr__
__setitem__ = __setattr__
def __len__(self):
return self.__dict__.__len__()
def __iter__(self):
for k, v in self.__dict__.items():
yield k, v
def __contains__(self, name):
return self.__dict__.__contains__(name)
def __eq__(self, other):
return self.__dict__ == other.__dict__
class StripOb(Ob):
def __init__(self, *args, **kwds):
super(StripJsOb, self).__init__(*args, **kwds)
d = self.__dict__
for k, v in d.items():
if isinstance(v, str):
if "\n" not in v:
_v = v.strip()
if _v != v:
d[k] = _v
if __name__ == '__main__':
ob1 = Ob(a=1, b=2)
print(ob1.a)
print(ob1.xx.a)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment