簡體   English   中英

Python中是否有一種方法可以告訴特定函數如何使用我的類對象進行操作?

[英]Is there a way in Python to tell specific function how to manipulate with my class objects?

我可以告訴另一個包中的某個函數如何使用用戶定義的類對象進行操作嗎?

例如,我有一個課:

class Complex:
    def __init__(self, real, imag):
        self.real = real
        self.imag = imag
    // ...

z = Complex(3, 5)

我想以某種方式覆蓋math.sin()函數來處理我的復數,例如:

z1 = math.sin(z)

這應該根據以下公式創建新的復數:sin(a + bi)= sin(a)* cosh(b)+ icos(a)* sinh(b)

呼叫

print(z1)

應該打印

/// 10.472508533940392 - 73.46062169567367i 

有辦法嗎?

我建議您為自己的課程編寫自己的方法。 否則,您可以使用稱為“猴子修補”的東西。

import math
def sin(x):
    do_stuff...

math.sin = sin

但我仍然認為,為您的課程編寫一個新函數是一個更好的主意

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM