python3 常用方法

2021-07-05  本文已影响0人  周六放风筝

对象 get set方法生成

if __name__ == '__main__':
# Country 是你自己定义的类
    obj = Country() 
    print(obj.__dict__)
    for k in obj.__dict__:
        print("def set_" + k + "(self," + k + "):")
        print("\tself." + k, "=" + k)
        print("def get_" + k + "(self):")
        print("\treturn self." + k)

自定义对象打印所有属性

def obj_to_string(cls, obj):
    """
    简单地实现类似对象打印的方法
    :param cls: 对应的类(如果是继承的类也没有关系,比如A(object), cls参数传object一样适用,如果你不想这样,可以修改第一个if)
    :param obj: 对应类的实例
    :return: 实例对象的to_string
    """
    if not isinstance(obj, cls):
        raise TypeError("obj_to_string func: 'the object is not an instance of the specify class.'")
    to_string = str(cls.__name__) + "("
    items = obj.__dict__
    n = 0
    for k in items:
        if k.startswith("_"):
            continue
        to_string = to_string + str(k) + "=" + str(items[k]) + ","
        n += 1
    if n == 0:
        to_string += str(cls.__name__).lower() + ": 'Instantiated objects have no property values'"
    return to_string.rstrip(",") + ")"

使用方法 在自定义对象中 添加 下列方法 之后 直接print(obj) 即可打印

    def __str__(self):
        return obj_to_string(Country, self)
上一篇下一篇

猜你喜欢

热点阅读