相关疑难解决方法(0)

5409
推荐指数
22
解决办法
75万
查看次数

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

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

python debugging introspection pretty-print python-datamodel

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


迭代python中的对象属性

我有一个python对象,有几个属性和方法.我想迭代对象属性.

class my_python_obj(object):
    attr1='a'
    attr2='b'
    attr3='c'

    def method1(self, etc, etc):
        #Statements
Run Code Online (Sandbox Code Playgroud)

我想生成一个包含所有对象属性及其当前值的字典,但我想以动态的方式进行(所以如果以后我添加另一个属性,我也不必记得更新我的函数).

在PHP中,变量可以用作键,但是python中的对象是不可编写的,如果我使用点符号,它会创建一个名为my var的新属性,这不是我的意图.

只是为了让事情更清楚:

def to_dict(self):
    '''this is what I already have'''
    d={}
    d["attr1"]= self.attr1
    d["attr2"]= self.attr2
    d["attr3"]= self.attr3
    return d
Run Code Online (Sandbox Code Playgroud)

·

def to_dict(self):
    '''this is what I want to do'''
    d={}
    for v in my_python_obj.attributes:
        d[v] = self.v
    return d
Run Code Online (Sandbox Code Playgroud)

更新:使用属性我只是指这个对象的变量,而不是方法.

python oop iteration attributes

137
推荐指数
3
解决办法
13万
查看次数

Object.keys() 的 Python 版本是什么?

假设我用 指定一个 MongoDB 游标pymongo,它不包括结果集中的所有字段,如下所示:

from pymongo import MongoClient
conn = MongoClient('mongodb://localhost:27017')
cur = conn['my_db']['my_collection'].find({},{'_id' : 0, 'my_unwanted_field' : 0})
Run Code Online (Sandbox Code Playgroud)

是否有一个函数或属性可以返回cur.

在 Mongo Shell 上使用的等效内容findOne是:

> var cur = findOne({},{'_id' : 0, 'my_unwanted_field' : 0})
> Object.keys(cur)

["field_1", ... , "field_n"]
Run Code Online (Sandbox Code Playgroud)

python

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

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
查看次数

Python相当于Java的getClass().getFields()

我正在将一段代码从Java转换为Python,我不知道如何翻译以下内容:

Field[] fields = getClass().getFields();
    for (int i = 0; i < fields.length; i++ ) {
        if (fields[i].getName().startsWith((String) param){ ....
Run Code Online (Sandbox Code Playgroud)

python java reflection

5
推荐指数
3
解决办法
4577
查看次数

如何迭代对象并将其所有属性分配给列表

a = []

class A(object):
    def __init__(self):
        self.myinstatt1 = 'one'
        self.myinstatt2 = 'two'
Run Code Online (Sandbox Code Playgroud)

a =['one','two']
Run Code Online (Sandbox Code Playgroud)

python

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