我想使用一個可以自動打印變量和值的函數。如下圖所示:Python:輕鬆打印變量名稱和值
num = 3
coolprint(num)
輸出:
num = 3
此外,它會很酷,如果它也可以做這樣的事情:
variable.a = 3
variable.b = 5
coolprint(vars(variable))
輸出:
vars(variable) = {'a': 3, 'b': 5}
有沒有什麼功能這已經在那裏?或者我應該自己做?謝謝
我想使用一個可以自動打印變量和值的函數。如下圖所示:Python:輕鬆打印變量名稱和值
num = 3
coolprint(num)
輸出:
num = 3
此外,它會很酷,如果它也可以做這樣的事情:
variable.a = 3
variable.b = 5
coolprint(vars(variable))
輸出:
vars(variable) = {'a': 3, 'b': 5}
有沒有什麼功能這已經在那裏?或者我應該自己做?謝謝
我發現答案是否定的。沒有辦法做到這一點。然而,最好的辦法是這樣的:
from pprint import pprint
def crint(obj, name):
if isinstance(obj, dict):
print '\n' + name + ' = '
pprint(obj)
else:
print '\n' + name + ' = ' + str(obj)
這樣,你可以這樣做:
crint(vars(table.content[0]), 'vars(table.content[0])')
或:
j = 3
crint(j, 'j')
另一種可能的選擇是使用映射數據結構,如字典。 –
一名官員的方式來完成這項任務可悲的是沒有按」即使它對許多人有用也是存在的。我想提出的以及我過去有時使用它的是以下內容(我不確定這是否是最好的方法)。
基本上你可以做的是創建一個自定義對象,每次模仿一個Python的數據類型。貝婁你可以找到一個整數的例子。
class CustomVariable(object):
def __init__(self, name, value):
self.name = name
self.value = value
def __str__(self):
return "{} = {}".format(self.name, self.value)
def __add__(self, val) :
return self.value + val
myVar = CustomVariable("myVar", 15)
print myVar
myVar = myVar + 5
print myVar
Output:
myVar = 15
myVar = 20
檢查命名的特殊方法 「___str____」
檢查pprint它可以做你想做什麼 –
的Python不支持這一點。函數只能看到對象,而不能看到變量名。 'coolprint'不知道'3'來自一個名爲'num'的變量。 – user2357112
根本不可能找到正確的變量,因爲可以有多個變量指向相同的值。 –