• 第二十七章 Classes - 引用其他类成员


    第二十七章 Classes - 引用其他类成员

    引用其他类成员

    在方法中,使用下面的语法来引用其他类成员:

    • 要引用ObjectScript中的参数,使用如下表达式:
     ..#PARAMETERNAME
    
    • 1

    只能使用ObjectScript直接访问参数。要从Python访问参数,请使用ObjectScript包装器方法返回参数,并在需要时调用此方法。例如:

    Class User.Employee Extends %RegisteredObject
    {
    
    Parameter ADDRESS = "123 Main St.";
    
    ClassMethod AddressWrapper() As %String [ Language = objectscript ]
    {
        return ..#ADDRESS
    }
    
    ClassMethod OfficeLocation() [ Language = python ]
    {
        import iris
        location=iris.cls("User.Employee").AddressWrapper()
        print("This office is located at", location)
    }
    
    Method EmployeeLocation() [ Language = python ]
    {
        location=self.AddressWrapper()
        print("This employee works at", location)
    }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    要从Python访问一个类方法,可以在所有上下文中使用iris.cls("Package.Class"). classmethodname()语法。在Python实例方法中,还可以使用更短的self.classMethodName()语法。

    提供的类中,按照惯例,所有参数都以大写字母定义,但代码不需要这样做。

    • 要引用另一个实例方法,使用这样的表达式:
     ..methodname(arguments)
    
    • 1
    self.methodname(arguments)
    
    • 1

    注意,不能在类方法中使用此语法来引用实例方法。

    • 要引用另一个类方法,请使用以下语法:
     ..classmethodname(arguments)
    
    • 1
    # technique 1
    iris.cls("Package.Class").classmethodname(arguments)
    
    # technique 2
    iris.cls(__name__).classmethodname(arguments)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    请注意,不能使用Python self语法访问类方法。相反,可以使用__name__属性来获取当前类的名称,如上面的示例所示。

    • (仅在实例方法中)要引用实例的属性,使用这样的表达式:
     ..PropertyName
    
    • 1
    self.PropertyName
    
    
    • 1
    • 2

    类似地,要引用对象值属性的属性,使用如下表达式:

     ..PropertyNameA.PropertyNameB
    
    • 1
    self.PropertyNameA.PropertyNameB
    
    • 1

    ObjectScript示例中使用的语法称为点语法。

    此外,还可以调用对象值属性的实例方法或类方法。例如:

     Do ..PropertyName.MyMethod()
    
    • 1
    self.PropertyName.MyMethod()
    
    • 1
  • 相关阅读:
    [02]Web前端进阶—script标签
    网络追记。
    Django知识点
    通信总线协议二 :RS232和RS485
    腾讯云字幕接口api整理笔记
    秋招 2022 年面试不用愁,速看 BATJ 最新 Java 面试题整理合集
    uni-app:多方法实现两个view在同一行展示
    Bigemap添加自定义地图,第三方地图
    vue2通信方法(最全)
    设计模式学习心得 - 面向对象的设计思想
  • 原文地址:https://blog.csdn.net/yaoxin521123/article/details/132868184