-5
A
回答
0
從技術上講,你可以做這樣的事情,使用元類:(Python 3中):
class MetaT(type):
def __new__(meta, name, bases, dct):
for k in dct:
#print("wrapping %s"%k)
class Wrap(type(dct[k])):
__parent_class__ = None
dct[k] = Wrap(dct[k])
return super(MetaT, meta).__new__(meta, name, bases, dct)
def __init__(cls, name, bases, dct):
for k in dct:
dct[k].__parent_class__ = cls
super(MetaT, cls).__init__(name, bases, dct)
class T(metaclass=MetaT):
x = 8
y = 9
def get_other_attribute(arg):
print("I got passed", arg)
print("The parent class is", arg.__parent_class__)
print("So I can reach attribute y:", arg.__parent_class__.y)
get_other_attribute(T.x)
然而,這個黑客是壞,你應該不使用它,你將不得不審查你的設計。我只是讓它學習了一點關於Python的知識,並且證明它可以在充分的黑客攻擊下完成。
相關問題
- 1. python變量,類
- 2. Python中的類變量[set()]
- 3. Python類變量或類變量一般
- 4. python類實例變量和類變量
- 5. 類內變量類(python)
- 6. Python 3.5類變量
- 7. Python類變量的範圍?
- 8. Python類相互靜態(類)的變量
- 9. Python:從類中的其他類變量訪問類變量 - 可能嗎?
- 10. 的Java類的變量和Python中
- 11. python中的類變量的繼承
- 12. 不是類變量的Python私有類變量
- 13. Python類:在基類的方法中創建變量子類
- 14. 類變量vs實例變量--Python
- 15. 外部類中的Python引用變量
- 16. 類變量中的Python靜態繼承
- 17. Python 3中的全局變量類
- 18. Python中的繼承類變量修改
- 19. python中的類,變量混淆
- 20. Python中的變量和數據類型
- 21. Python類中的公共變量?
- 22. 覆蓋python中的類變量?
- 23. python中的類變量初始化
- 24. Python中的類屬性/變量
- 25. Python中的靜態類變量和`self`
- 26. Python類實例與類變量
- 27. Python類函數找不到類變量
- 28. 類級別變量python
- 29. Python類 - 超級變量
- 30. Python Twisted LineReceiver類變量?
你是什麼意思*將類從類變量*中取出? –
不,你不能從值中知道什麼類引用它。你的函數傳遞'5',而不是'T.x',並且該整數對象不會告訴你存在什麼引用。 –
如果你問「當我調用'some_function(T.x)'時,是否有'some_function'確定類'T'的方法,然後找到'T.y'?」,那麼,沒有。就'some_function'而言,您傳遞給它的值是一個簡單的整數,沒有可跟蹤的信息。 – Kevin