class的好處就是內部結構井井有條,程式碼沒有不裸露,都封裝到屬性或方法裡
阿新 • • 發佈:2018-11-09
class的好處就是內部結構井井有條,程式碼沒有不裸露,都封裝到屬性或方法裡
這是一個函式裡帶子函式的例子:
def scope_test(): def do_local(): spam = "local spam" def do_nonlocal(): nonlocal spam spam = "nonlocal spam" def do_global(): global spam spam = "global spam" spam = "test spam" do_local() print("After local assignment:", spam) do_nonlocal() print("After nonlocal assignment:", spam) do_global() print("After global assignment:", spam) scope_test() print("In global scope:", spam)
The output of the example code is:
After local assignment: test spam After nonlocal assignment: nonlocal spam After global assignment: nonlocal spam In global scope: global spam
https://docs.python.org/3.7/tutorial/classes.html#scopes-and-namespaces-example
這樣的巢狀定義還是第一次看到,但是從外部無法呼叫scope_test()內部的函式do_local()、do_nonlocal()、do_global()。
而如果寫成類,就可以輕易的呼叫類的方法,而且類內部除了定義的各種方法和屬性,沒有零散的語句了,如果想增加類的功能,可以新增方法,而不需要在原有的程式碼上做修改(那是最頭痛的)。
而且因為可以加很多方法,所以每個方法都不必寫的很複雜,這樣即使修改某個方法的內部程式碼,也不會太複雜。