1
例如:爲什麼在一個類已經被定義後能夠添加屬性在Python中不是非法的?
class Car:
pass
jeep = Car()
jeep.color = 'blue'
這是完全合法的,並運行良好。我知道Python是非常動態的,但這不違反一些OOP原則嗎?
例如:爲什麼在一個類已經被定義後能夠添加屬性在Python中不是非法的?
class Car:
pass
jeep = Car()
jeep.color = 'blue'
這是完全合法的,並運行良好。我知道Python是非常動態的,但這不違反一些OOP原則嗎?
http://docs.python.org/tutorial/classes.html#odds-and-ends
要動態設置的字段和值時,他們只能在運行時是已知的。
Python並不妨礙你動態創建實例屬性,但你可以決定不這樣做如果你沒有很好的理由這樣做。 Python是一門功能強大的語言,但必須小心謹慎,以避免濫用這種權力來做出瘋狂的事情,並具有靈活性。
你指的是哪一個原理? – scravy 2011-12-27 21:11:29
可能有人認爲這違反了數據隱藏的原則,但是Python並沒有強制執行。 – 2011-12-27 21:12:24
新的屬性屬於實例,而不是類 – Jhonathan 2011-12-27 21:13:08