我包裝調用的API以及我的大多數方法在他們的第一線:是否有像c#的python裝飾器?
if (!Gree.Authorizer.IsAuthorized())
{
return;
}
在Python中我會裝點這些方法的東西,如@login_required
。
你會用什麼來重構c#
中那種類型的邏輯?
我包裝調用的API以及我的大多數方法在他們的第一線:是否有像c#的python裝飾器?
if (!Gree.Authorizer.IsAuthorized())
{
return;
}
在Python中我會裝點這些方法的東西,如@login_required
。
你會用什麼來重構c#
中那種類型的邏輯?
您正在尋找稱爲面向方面編程(Aspect Oriented Programming)的更一般編程方法的子集。
C#似乎支持它通過幾個庫,也可以推出自己的,這要感謝一些CLR功能。請參閱Aspect Oriented Programming using .NET,其中涵蓋了其基本原理(我將鏈接文章的部分內容討論C#的具體內容,但如果您正在尋找像PostSharp這樣的現成解決方案,其餘部分同樣有趣,如另一答案中所述)。
我不熟悉Python,但它似乎你正在尋找「屬性」(MSDN),(它非常類似於Java註釋)。
尤其是,.NET提供了「AuthorizeAttribute」,它完全符合你的要求(也許更多一點)。雖然你不在.NET之下,但是你仍然可以在實現中實現一些東西。
'屬性'只是元數據附加到類/方法等,他們自己什麼都不做。您需要使用另一種工具,它使用反射讀取這些元數據,並執行所有AOP工具所需的所需內容 – Ankur
感謝您的鏈接。我將檢查這是否適用於'Unity3d'。 – Macarse