這很可能之前已經被問過了,但我不確定我所看到的問題具有完全相同的情況。返回一個變量的名稱而不是其對象引用代碼
我有一個跟蹤光線的程序。每條光線都是一個物體,每個透鏡都是一個物體。如果當用戶試圖使用該方法通過鏡頭傳播光線時,該光線實際上並不通過鏡頭,我希望程序告訴用戶這一事實。
僞代碼:
class OpticalElement:
...
def propagate_ray(self):
if intersect:
calculate new direction etc
else:
print "Ray %s did not intersect optical element" % (ray)
使得
>> A = Ray(args) # won't intersect lens1
>> B = Ray(different args)
>> lens1 = OpticalElement(args)
>> lens1.propagate_rays(A, B)
'Ray <Ray instance at 0x7688> did not intersect optical element'
誰知道哪個射線即當存在被傳播的光線50?我想要它輸出:
'Ray A did not intersect optical element'
你不能那樣做;對象不會跟蹤引用它們的名稱。 – 2014-11-03 18:38:06
一個對象可以有許多不同的變量引用它們。你應該給你的對象'name'屬性。 – Borodin 2014-11-03 18:40:08
如果電話是'lens1.propagate_rays(Ray(args),Ray(不同的參數))',你會顯示什麼? – chepner 2014-11-03 18:40:47