1. 程式人生 > >class的好處就是內部結構井井有條,程式碼沒有不裸露,都封裝到屬性或方法裡

class的好處就是內部結構井井有條,程式碼沒有不裸露,都封裝到屬性或方法裡

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()。

而如果寫成類,就可以輕易的呼叫類的方法,而且類內部除了定義的各種方法和屬性,沒有零散的語句了,如果想增加類的功能,可以新增方法,而不需要在原有的程式碼上做修改(那是最頭痛的)。

而且因為可以加很多方法,所以每個方法都不必寫的很複雜,這樣即使修改某個方法的內部程式碼,也不會太複雜。