2011-12-27 17 views
1

例如:爲什麼在一個類已經被定義後能夠添加屬性在Python中不是非法的?

class Car: 
    pass 
jeep = Car() 
jeep.color = 'blue' 

這是完全合法的,並運行良好。我知道Python是非常動態的,但這不違反一些OOP原則嗎?

+5

你指的是哪一個原理? – scravy 2011-12-27 21:11:29

+0

可能有人認爲這違反了數據隱藏的原則,但是Python並沒有強制執行。 – 2011-12-27 21:12:24

+0

新的屬性屬於實例,而不是類 – Jhonathan 2011-12-27 21:13:08

回答

2

http://docs.python.org/tutorial/classes.html#odds-and-ends

要動態設置的字段和值時,他們只能在運行時是已知的。

Python並不妨礙你動態創建實例屬性,但你可以決定不這樣做如果你沒有很好的理由這樣做。 Python是一門功能強大的語言,但必須小心謹慎,以避免濫用這種權力來做出瘋狂的事情,並具有靈活性。

相關問題