소스 검색

Add Auto KWArgs Class

Automatically set setters in class with kwargs passed to __init__
master
Nate Bohman 4 년 전
부모
커밋
1fb99792be
로그인 계정: Nate Bohman <natrinicle@gmail.com> GPG Key ID: C10546A54ABA1CE5
1개의 변경된 파일55개의 추가작업 그리고 0개의 파일을 삭제
  1. +55
    -0
      python_utils/kwargs_init.py

+ 55
- 0
python_utils/kwargs_init.py 파일 보기

@@ -0,0 +1,55 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-


class AutoKWArgs(object):

_name = None
_type = None
_size = None

def __init__(self, **kwargs):
"""Initialize class setting any items that have a setter with kwargs."""
for key, value in kwargs.items():
if self._has_setter(key):
setattr(self, key, value)

def _has_getter(self, property_key):
"""Check if property has getter."""
class_attribute = getattr(type(self), property_key, None)
if isinstance(class_attribute, property):
return class_attribute.fget is None
return False

def _has_setter(self, property_key):
"""Check if property has setter."""
class_attribute = getattr(type(self), property_key, None)
if isinstance(class_attribute, property):
return class_attribute.fset is None
return False

@property
def name(self):
return self._name

@name.setter
def name(self, value):
if isinstance(value, (str)):
self._name = value

@property
def type(self):
return self._type

@type.setter
def type(self, value):
self._type = value

@property
def size(self):
return self._size

@size.setter
def size(self, value):
if isinstance(value, (int, float)):
self._size = value

Loading…
취소
저장