関数やメソッドの振る舞いを拡張python
する実装が可能です。function decorators
特に、デバイス ライブラリを からpython
に移行していC#
ます。デバイスとの通信でエラーが発生する可能性があり、カスタム例外で再発生する必要があります。
ではpython
、次のように書きます。
@device_error_wrapper("Device A", "Error while setting output voltage.")
def set_voltage(self, voltage):
"""
Safely set the output voltage of device.
"""
self.__handle.write(":source:voltage:level {0}".format(voltage))
このメソッド呼び出しは次のように展開されます
try:
self.__handle.write(":source:voltage:level {0}".format(voltage))
except Error:
raise DeviceError("Error while setting output voltage.", "DeviceA")
このパターンを使用するとtry-except
、すべてのメソッドにすべての句を記述することなく、メソッドを簡単にラップおよび拡張できます。
を使用して同様のパターンを実装することは可能C#
ですか?
デコレータ( device_error_wrapper
)の実装が必要な場合はお申し付けください。