相关疑难解决方法(0)

是否有内置函数来打印对象的所有当前属性和值?

所以我在这里寻找的是像PHP的print_r函数.这样我就可以通过查看相关对象的状态来调试我的脚本.

python debugging introspection pretty-print python-datamodel

876
推荐指数
18
解决办法
75万
查看次数

循环遍历python中类的所有成员变量

如何获得可迭代的类中的所有变量的列表?有点像locals(),但对于一个类

class Example(object):
    bool143 = True
    bool2 = True
    blah = False
    foo = True
    foobar2000 = False

    def as_list(self)
       ret = []
       for field in XXX:
           if getattr(self, field):
               ret.append(field)
       return ",".join(ret)
Run Code Online (Sandbox Code Playgroud)

这应该回来了

>>> e = Example()
>>> e.as_list()
bool143, bool2, foo
Run Code Online (Sandbox Code Playgroud)

python

79
推荐指数
4
解决办法
7万
查看次数

如何列出所有类属性

我有类SomeClass属性.例如idname:

class SomeClass(object):
    def __init__(self):
        self.__id = None
        self.__name = None

    def get_id(self):
        return self.__id

    def set_id(self, value):
        self.__id = value

    def get_name(self):
        return self.__name

    def set_name(self, value):
        self.__name = value

    id = property(get_id, set_id)
    name = property(get_name, set_name)
Run Code Online (Sandbox Code Playgroud)

列出属性的最简单方法是什么?我需要这个序列化.

python serialization properties

22
推荐指数
2
解决办法
1万
查看次数

按照他们的声明顺序通过班级成员进行迭代

编写一个将类映射到简单表视图的GUI库时,我遇到了这个问题.某个类型=列的每个类成员以及列的顺序都很重要.但...

class Person(object):

    name = None
    date_of_birth = None
    nationality = None
    gender = None
    address = None
    comment = None


for member in Person.__dict__.iteritems():
    if not member[1]:
        print member[0]
Run Code Online (Sandbox Code Playgroud)

输出:

comment
date_of_birth
name
address
gender
nationality
...
Run Code Online (Sandbox Code Playgroud)

呃,奥得河搞得一团糟......想要的输出:

name
date_of_birth
nationality
gender
address
comment
Run Code Online (Sandbox Code Playgroud)

有没有办法在不保留额外OrderedDict()列的情况下完成?

python

13
推荐指数
1
解决办法
3713
查看次数

Python中获取类的所有属性

是否可以获取某个类或对象的所有属性?我有一个具有许多属性的类,我想创建一个函数/方法,它返回对象的所有属性等于 None 。

由于这些属性有很多,我必须避免将它们全部写入函数中。

像这样的东西:

def get_all_empty_attributes(self):
    for attr  in self.attributes.names:
        if self.attr==None:
            yield attr
Run Code Online (Sandbox Code Playgroud)

是否可以使用内置函数来完成?

python attributes class object

6
推荐指数
1
解决办法
4326
查看次数

获取所有可能的类属性的完整列表

给定一个简单的类,有没有办法为其输出所有可能的属性?标准属性,如__class__and__doc__ 特殊的只读属性,__mro__, __bases__et al。一般来说,所有存在的属性?

考虑一个类的最简单的情况:

class myClass:
    pass
Run Code Online (Sandbox Code Playgroud)

dir()vars()inspect.getmembers()所有的排除某些builtin属性。通过使用myClass.__dir__(MyClass)which提供最完整的列表,在添加内置属性时,排除 的用户定义属性MyClass,例如:

In [3]: set(MyClass.__dir__(MyClass)) - set(dir(MyClass))
Out[3]: 
{'__abstractmethods__', '__base__', '__bases__',
 '__basicsize__', '__call__', '__dictoffset__',
 '__flags__', '__instancecheck__', '__itemsize__',
 '__mro__', '__name__', '__prepare__', '__qualname__',
 '__subclasscheck__', '__subclasses__', '__text_signature__',
 '__weakrefoffset__', 'mro'}
Run Code Online (Sandbox Code Playgroud)

根据添加的类似问题之一,这是不可能的。如果目前仍然不可能,那么“隐藏”某些属性__bases__(从标准调用到dir(), vars() & inspect而不是像__name__?


类似问题:

python attributes python-2.x python-3.x

5
推荐指数
1
解决办法
2996
查看次数