我刚刚开始学习sympy中的基本解析,对此几乎没有问题。
我要创建一个proc()
,调用者将向它传递一个符号函数以及该函数的参数,每个参数均作为单独的参数。也就是说,我不想将proc称为proc( y(x) )
,而是将其称为proc(y,x)
,我认为这样对我来说更容易检查其自变量。
接下来,在proc内部,想要在执行任何处理之前先验证第一个参数类型确实是sympy函数,第二个参数是sympy符号。
检查该参数是否是sympy函数而不是其他什么的正确方法是什么?这就是我尝试过的。创建了一个文件:
================
def process(y,x):
if not isinstance(x, sympy.Symbol):
raise Exception(x + " should be a sympy symbol")
if not isinstance(y,sympy.UndefinedFunction): #this does not work
raise Exception(y + " should be a sympy function")
import sympy
x = sympy.symbols('x')
y = sympy.Function('y')
process(y,x)
======================
但是没有sympy.UndefinedFunction
。当我键入
type(y)
Out[18]: sympy.core.function.UndefinedFunction
但是
isinstance(y,sympy.core.function.UndefinedFunction)
也不起作用。也许有更好的方法可以完成上述所有操作。基本上,我想确保proc的输入是正确的。
使用3.7(conda)
答案 0 :(得分:1)
将Button move_found = findViewById(R.id.btn_found);
Button move_conc = findViewById(R.id.btn_conc);
move_found.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
startActivity(intent);
}
});
move_conc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
startActivity(intent);
}
});
替换为sympy.UndefinedFunction
。
此外,sympy.function.UndefinedFunction
函数中的x
和y
的类型应该是字符串,否则在两种情况下都会出现Exception
错误。
新代码:
unsupported operand type(s) for +: