为什么在python的类中用print 输出不了值?

问题遇到的现象和发生背景

为什么在python的类中用print 输出不了值?

用代码块功能插入代码,请勿粘贴截图

class GTERFE():

def __init__(self, hidden_dims, lambda_):
    self.lambda_ = lambda_
    self.n_layers = len(hidden_dims) -1
    print('self.n_layers',self.n_layers)
    self.W, self.v = self.define_weights(hidden_dims)
    self.C = {}


def __call__(self, A, X, R, S):

    print('A',A)
    print('X',X )
    print('R',R )
    print('S',S )
   
    H = X
    for layer in range(self.n_layers):
        print('print_layer',layer)
        H = self.__encoder(A, H, layer)
        print('H',H )
运行结果及报错内容

A SparseTensor(indices=Tensor("Placeholder_8:0", shape=(None, None), dtype=int64), values=Tensor("Placeholder_7:0", shape=(None,), dtype=float32), dense_shape=Tensor("Placeholder_6:0", shape=(None,), dtype=int64))
X Tensor("Placeholder_9:0", dtype=float32)
R Tensor("Placeholder_11:0", dtype=int64)
S Tensor("Placeholder_10:0", dtype=int64)

我的解答思路和尝试过的方法

sess = tf.Session()
print "value of A is : "
print sess.run(A)

我想要达到的结果

输出 def call(self, A, X, R, S): 这个函数里面的A,X,R,S,H的值,

你现在不是已经打印了吗
问题是AXRS不是简单类型,它里面一大堆东西,你直接打印就会给你打印出这东西来
你要先弄清楚你到底要打印这个类型里的什么,不存在打印全部的选项
除非你自己实现__str__方法

已经输出了啊

那些就是a x r s本身的内容,不是报错内容,只不过这些内容有点复杂

img

请看👉 :

为什么python输出不了结果_为什么print语句打印不出来_weixin_39979516的博客-CSDN博客 Python中print语句主要是向屏幕打印输出的。在python2和python3中,两者是有些区别的,使用时要注意一下。逗号分隔符在Python中print语句可根据sys.stdout中包含的文件生成输出,它接受一个逗号分隔的对象表,如下实例:x = 1y = 2z = 3print("the values are", x, y, z)#打印结果为 the values are 1 2 3在... https://blog.csdn.net/weixin_39979516/article/details/110379932?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8python%E7%9A%84%E7%B1%BB%E4%B8%AD%E7%94%A8print%20%E8%BE%93%E5%87%BA%E4%B8%8D%E4%BA%86%E5%80%BC%EF%BC%9F&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduweb~default-0-110379932.nonecase&spm=1018.2226.3001.4450

print(dir(X))
查看X对象有哪些属性值自己查看

这个是一已经打印出来了,除非你要的结果不是这样,然后调用其它类型的函数值

看起来已经打印了