【问题标题】:How can I represent the static method in Python in a class diagram?如何在类图中表示 Python 中的静态方法?
【发布时间】:2019-07-20 15:38:26
【问题描述】:

Python 中的静态方法在逻辑上与类相关联并存在于其中,但它们不是成员方法或类方法。如何在类图中表示它,如何将它与其他方法区分开来?

// Suppose this is the method
@staticmethod
def is_work(day):
   if day.weekday() == 4 or day.weekday() == 5:
       return False
   return True

【问题讨论】:

  • 在 UML 中,静态方法和属性带有下划线。
  • Python 中的静态方法本质上只是一个类方法,它不接收类作为隐式参数。在语法方面,实例、类或静态方法几乎没有区别:它们都只是绑定到不同类型对象的类属性。
  • 我明白了。但是这样在类图中就没有办法区分类方法和静态方法了??
  • 重复stackoverflow.com/questions/11209240/…(抱歉,我第一次出错,无法关闭)

标签: python class uml static-methods class-diagram


【解决方案1】:

@classmethod 和@staticmethod 都映射到 UML 静态属性,这意味着它们应该在图表上用下划线呈现。

但是,UML 没有内置任何东西可以让您区分它们。如果您为 cls 参数使用标准名称,那么这至少可以在视觉上有所区别。如果您想更进一步,我建议您定义一个刻板印象以确保它是显而易见的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    相关资源
    最近更新 更多