ขนาดวิดีโอ: 1280 X 720853 X 480640 X 360
แสดงแผงควบคุมโปรแกรมเล่น
เล่นอัตโนมัติ
เล่นใหม่
對Class、Decorator還有各種method的理解又進一步了,非常感謝!
非常完整的舉例, 一掃之前的困惑。😀
感谢支持~
@@minkoder 看到打賞突然想到這高天是真高天還是搬運的高天
@@charlottehong1276 你可以看最近的几期视频,都是B站和TH-cam同时上的。或者看我之前本人出镜骂TH-cam的视频。另外TH-cam这边的视频是无水印的。
謝謝,很實用
讲得太清楚了,甚叼
長知識了!!
还有更复杂的decorator带参数这个decorator里有两层def而不是常见的一层
想請教個問題,如果我的裝飾器就是必須用到self的某些method 或 attribute 我要怎麼把這個self 也一起放進去
有沒有更詳細的資訊或code,例如用到的attribute是動態或是靜態
@@moneymaker02x 實際有遇到的狀況是,我在寫 Qt 的介面,我期望寫一個裝飾器裝飾每一個元件的 callback ,只是簡單的 try catch,裝飾器如果有接到錯誤會把錯誤顯示在介面的某一個textbox 上,因此會需要在裝飾器內用到 self ,這個 self 是 Qt 的 Mainwindow
这种用法真的推荐使用吗😂,这也太过奇怪了吧,不过看完之后确实有了一种莫名的对python的理解
感觉没有什么推荐不推荐的说法吧,如果遇到这种使用场景,恰好有直接的解决方案就不需要一些“设计模式”了。
我推荐的是,非必要情况不要乱用,不然你后续可能出现一堆bug。但是当你使用class 时候里面的function 不需要任何的参数时,使用staticmethod会很适合,当你在superclass里面的function需要继承给其他subclass时候,且每个subclass需要进行各自的功能,可以使用classmethod,这样比如cls.name_list这些它会检测你使用的class是什么,并且运行对应的功能
其實並不奇怪,這個用法就是 function 原本的用法,用 instance.method 呼叫事實上是語法糖
@@chen-shen-yi 我感觉上的奇怪是在于,通常感觉上,函数定义、类定义的部分,有一种“不分先后顺序”的感觉,毕竟前面定义的函数可以调用后面定义的。但是这里直接在最后给函数套一层staticmethod,且在此之后就不能再在类里调用这个函数了。这让我感受到,其实函数的定义依然是分先后,就和正常的代码一样,这给我一种违反语感的感受,所以感到奇怪。
很好用的,例如你定義的方法,可以直接用decorated寫好測試或其他限制,到時候調用的時候就不用在這些方法裡面寫assert或其他isinstance,剩下的問題就是return的內容
staticmethod(log_function)(fib)(3)用的时候经常会想到js的()=>()=>()=>{ } lambda
卡threading教學
繞暈了,還是不會
写装饰器我比较喜欢class然后写__call__这种写法
😂巧了,项目有人这么写
所以 @staticmethod 这个装饰器就是为了让对象也能调用这个方法?从来都只通过类调用是不是就不一定需要 @staticmethod 了?
對Class、Decorator還有各種method的理解又進一步了,非常感謝!
非常完整的舉例, 一掃之前的困惑。😀
感谢支持~
@@minkoder 看到打賞突然想到這高天是真高天還是搬運的高天
@@charlottehong1276 你可以看最近的几期视频,都是B站和TH-cam同时上的。或者看我之前本人出镜骂TH-cam的视频。另外TH-cam这边的视频是无水印的。
謝謝,很實用
讲得太清楚了,甚叼
感谢支持~
長知識了!!
还有更复杂的decorator带参数
这个decorator里有两层def而不是常见的一层
想請教個問題,如果我的裝飾器就是必須用到self的某些method 或 attribute 我要怎麼把這個self 也一起放進去
有沒有更詳細的資訊或code,例如用到的attribute是動態或是靜態
@@moneymaker02x 實際有遇到的狀況是,我在寫 Qt 的介面,我期望寫一個裝飾器裝飾每一個元件的 callback ,只是簡單的 try catch,裝飾器如果有接到錯誤會把錯誤顯示在介面的某一個textbox 上,因此會需要在裝飾器內用到 self ,這個 self 是 Qt 的 Mainwindow
这种用法真的推荐使用吗😂,这也太过奇怪了吧,不过看完之后确实有了一种莫名的对python的理解
感觉没有什么推荐不推荐的说法吧,如果遇到这种使用场景,恰好有直接的解决方案就不需要一些“设计模式”了。
我推荐的是,非必要情况不要乱用,不然你后续可能出现一堆bug。
但是当你使用class 时候里面的function 不需要任何的参数时,使用staticmethod会很适合,当你在superclass里面的function需要继承给其他subclass时候,且每个subclass需要进行各自的功能,可以使用classmethod,这样比如cls.name_list这些它会检测你使用的class是什么,并且运行对应的功能
其實並不奇怪,這個用法就是 function 原本的用法,用 instance.method 呼叫事實上是語法糖
@@chen-shen-yi 我感觉上的奇怪是在于,通常感觉上,函数定义、类定义的部分,有一种“不分先后顺序”的感觉,毕竟前面定义的函数可以调用后面定义的。但是这里直接在最后给函数套一层staticmethod,且在此之后就不能再在类里调用这个函数了。这让我感受到,其实函数的定义依然是分先后,就和正常的代码一样,这给我一种违反语感的感受,所以感到奇怪。
很好用的,例如你定義的方法,可以直接用decorated寫好測試或其他限制,到時候調用的時候就不用在這些方法裡面寫assert或其他isinstance,剩下的問題就是return的內容
staticmethod(log_function)(fib)(3)
用的时候经常会想到js的()=>()=>()=>{ } lambda
卡threading教學
繞暈了,還是不會
写装饰器我比较喜欢class然后写__call__这种写法
😂巧了,项目有人这么写
所以 @staticmethod 这个装饰器就是为了让对象也能调用这个方法?从来都只通过类调用是不是就不一定需要 @staticmethod 了?