Tôi có một lớp có tên Factor
trong module Factor.py
(https://github.com/pgmpy/pgmpy/blob/dev/pgmpy/factors/Factor.py) và cũng có chức năng đặt tên factor_product
trong Factor.py
như:hành vi kỳ lạ của chức năng isinstance
def factor_product(*args):
if not all(isinstance(phi, Factor) for phi in args):
raise TypeError("Input parameters must be factors")
return functools.reduce(lambda phi1, phi2: _bivar_factor_operation(phi1, phi2,
operation='M'), args)
Bây giờ nếu tôi thậm chí còn vượt qua trường hợp của Factor
đến chức năng, nó vẫn ném TypeError
. Một vài dòng từ trình gỡ lỗi có điểm ngắt được đặt phía trên câu lệnh if:
(Pdb) args
args = (<pgmpy.factors.Factor.Factor object at 0x7fed0faf76a0>, <pgmpy.factors.Factor.Factor object at 0x7fed0faf7da0>)
(Pdb) isinstance(args[0], Factor)
False
(Pdb) type(args[0])
<class 'pgmpy.factors.Factor.Factor'>
(Pdb) Factor
<class 'pgmpy.factors.Factor.Factor'>
Bất kỳ ý tưởng nào về việc này xảy ra?
phỏng đoán hoang dã: bạn có bao giờ gọi 'tải lại' không? – Eevee
@Eevee: Ah .. Tôi đang sử dụng phần mở rộng 'reload' của ipython. Cảm ơn rất nhiều. –