我正在修改Openstack Designate中的代码。
在同一时间我需要打印一些数据。
当我检查相同的类型时,它返回了如下详细信息:
<class 'designate.openstack.common.rpc.amqp.RpcContext'>
当我尝试记录相同的内容(用于打印)时,它返回的详细信息如下:
<designate.openstack.common.rpc.amqp.RpcContext object at 0x7f7552b08250>
我知道它包含tenant_id,所以当我尝试打印时,它工作正常。
LOG.info(context.tenant_id)
现在我需要知道或看看里面是什么:
<designate.openstack.common.rpc.amqp.RpcContext object at 0x7f7552b08250>
那是在'上下文'中。
我需要的只是打印位于“上下文”内的详细信息
答案 0 :(得分:1)
__repr__
是&#34;官员&#34;对象的字符串表示
__str__
是&#34;非正式的&#34;对象的字符串表示
您可以覆盖类中的两个函数。
有关详细信息,请参阅Difference between __str__ and __repr__ in Python
在你的情况下你可以写:
def __str__(self):
return '%d' % self.tenant_id
答案 1 :(得分:1)
任何与oslo-incubator相关的东西都应该在openstack / oslo-incubator中更改,然后同步指定项目
然而,大多数代码都是从oslo-incubator毕业的,oslo-incubator中的rpc模块似乎不再存在,所以看来你是在开发基于(旧的)稳定分支
所以我想你只需要知道它里面有什么。
正如您已经为tenant_id所做的那样,只需添加一个要打印的日志:
org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread
会没事的
答案 2 :(得分:0)
也许你可以使用这个小技巧:
<TextView
android:layout_width="match_parent"
android:layout_height="180dp"
android:lineSpacingExtra="10dp"/>
def info_obj(a):
for x in dir(a):
if not x.startswith('_'):
print(x, ,'=', a.__getattribute__(x))
将返回对象的所有属性的名称,dir(a)
将获得其值。我正在跳过以__getattribute__
开头的那些,因为对象的用户通常不会看到这些内容。