【问题标题】:How to check if an object is a class如何检查一个对象是否是一个类
【发布时间】:2023-01-13 05:50:27
【问题描述】:

我有一段代码需要从 python 转换为 matlab。我被 python 代码中的 isclass() 方法困住了:

inspect.isclass(object)

据我所知,这会检查对象是否是一个类并相应地返回 true 或 false。

有没有办法在matlab中做到这一点?

matlab isa 函数似乎很合适,但它似乎无法检查类。

【问题讨论】:

  • 你想检查什么样的班级?一切都是一个类,无论那个类是double还是table还是myCustomObject...isa函数让你检查一个特定的类
  • @Wolfie 我需要检查某物是类还是对象。我刚刚意识到我可以使用 isobject 来检查它
  • “是类还是对象”?我认为这里的命名法有点混乱。值永远不能是“类”,它可以是特定类的对象。 isobject 会告诉您该值是否属于自定义类(也称为用户定义类)。还有isdoubleischarisstringiscellisstruct等。class返回值的类名(即值的类型),与isa比较class 到给定的字符串。
  • 无论你在做什么,你都可能做错了。你不应该需要猜测你有什么!向下转型是一种代码味道。
  • @Chuck MATLAB 是一种鸭子类型的语言,您有时需要检查函数输入的类型。

标签: python matlab class


【解决方案1】:

如果您正在尝试检查一个变量是否在一个类中,请尝试使用 isa 函数并将“类”作为类型传递。

bol = isa(x, 'class');

【讨论】:

    猜你喜欢
    • 2011-06-02
    • 2017-07-26
    • 1970-01-01
    • 2018-08-17
    • 2010-12-04
    • 2017-05-05
    • 1970-01-01
    • 2021-08-17
    相关资源
    最近更新 更多