这篇文章主要为大家展示了“Jython类中如何实现添加定义类属性及隐藏变量”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Jython类中如何实现添加定义类属性及隐藏变量”这篇文章吧。
Jython类——添加类实例的属性
在 Jython 中(与 Java 语言不同),客户可以在实例中添加 字段 (也称为 属性)。这只改变一个实例。要向实例添加字段(x),只要在这个实例上设置新值,如下所示:
x.attr1 = 1 x.attr2 = 2 : x.attrN = n
Jython类——定义类属性和方法
所有在一个类中绑定的变量都是 类属性 (或者变量)。所有在类中定义的函数都是 方法。方法以类的一个实例,一般称为 self,作为***个(也许是惟一的)参数。例如,要定义一些类属性和方法,可以输入:
class MyClass: attr1 = 10 # class attributes attr2 = "hello" def method1(self): print MyClass.attr1 # reference the class attribute def method2(self, p1, p2): print MyClass.attr2 # reference the class attribute def method3(self, text): self.text = text # instance attribute print text, self.text # print my argument and my attribute method4 = method3 # make an alias for method3
注意在类中,应当用类名限定所有对类属性的引用(例如 MyClass.attr1),用 self 变量限定所有对实例变量的引用(例如 self.text)。在类外部,应当用类名限定所有对类属性的引用(例如 MyClass.attr1),或者用实例限定对实例的引用(例如 x.attr1)和所有对实例属性的引用(例如 x.text,其中 x 是类的一个实例)。
Jython类——隐藏变量
要实现数据隐藏,常常需要创建 “private”变量,它只能被类本身访问。 Jython 提供了一个命名规范,它使从类外部访问属性和方法很困难。如果声明以下形式的名字: __xxx 或者 __xxx_yyy (前面有下划线),那么 Jython 解析器将自动拆分(mangle)所声明的名字(即加上类名),从而创建隐藏的变量。例如:
class MyClass: __attr = 10 # private class attribute def method1(self): pass def method2(self, p1, p2): pass def __privateMethod(self, text): self.__text = text # private attribute
注意与 C++ 和 Java 语言不同,对实例变量的所有引用都必须用 self 限定,不会隐式使用 this。
以上是“Jython类中如何实现添加定义类属性及隐藏变量”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。