3K+ 次浏览
数据隐藏在 Python 中,我们在属性名称前使用双下划线来使它们不可访问/私有或隐藏它们。以下代码显示了变量 __hiddenVar 如何被隐藏。示例类 MyClass: __hiddenVar = 0 def add(self, increment): self.__hiddenVar += increment print (self.__hiddenVar) myObject = MyClass() myObject.add(3) myObject.add (8) print (myObject.__hiddenVar)输出 3 追溯 (最近一次调用最后): 11 文件 "C:/Users/TutorialsPoint1/~_1.py",第 12 行,在 print (myObject.__hiddenVar) AttributeError:MyClass 实例没有属性 '__hiddenVar'在上面的程序中,我们尝试使用对象在类外部访问隐藏变量,它抛出一个… 阅读更多
372 次浏览
cmp() 函数cmp(x, y) 函数比较两个参数 x 和 y 的值 -cmp(x, y)返回值为 -如果 x 小于 y,则为负数。如果 x 等于 y,则为零。如果 x 大于 y,则为正数。内置 cmp() 函数通常只返回 -1、0 或 1。但是,还有其他地方期望具有相同调用顺序的函数,并且这些函数可能会返回其他值。最好只观察结果的符号。>>> cmp(2, 8) -1 >>> cmp(6, 6) 0 >>> cmp(4, 1) 1 >>> cmp('stackexchange', ... 阅读更多
442 次浏览
__str__ 方法__str__ 是一种特殊方法,类似于 __init__,它返回对象的“非正式”字符串表示。它在调试中很有用。考虑以下使用 __str__ 方法的代码类 Time: def __str__(self): return '%.2d:%.2d:%.2d' % (self.hour, self.minute, self.second)当我们打印一个对象时,Python 会调用 str 方法 ->>> time = Time(7, 36) >>> print time 07:36:00
625 次浏览
官方 Python 文档说 __repr__() 用于计算对象的“官方”字符串表示。repr() 内置函数使用 __repr__() 来显示对象。__repr__() 返回对象的打印表示,这是创建此对象的一种可能方式。__repr__() 对开发人员更有用,而 __str__() 对最终用户更有用。示例以下代码显示了 __repr__() 的使用方法。类 Point: def __init__(self, x, y): self.x, self.y = x, y def __repr__(self): return 'Point(x=%s, y=%s)' % (self.x, self.y) p = Point(3, 4) print p输出这会… 阅读更多
563 次浏览
__del__() 方法被称为析构方法。当对象被垃圾收集时,它会被调用,这发生在对该对象的所有引用都被删除之后。在一个简单的例子中,这可能是在你删除一个变量(如 del x)之后,或者如果 x 是一个局部变量,则在函数结束之后。特别是,除非存在循环引用,否则 CPython(这是标准的 Python 实现)会立即进行垃圾收集。Python 垃圾收集的唯一属性是在所有引用都被删除后发生,因此这可能不一定立即发生,甚至… 阅读更多
1K+ 次浏览
__init__ "__init__" 是 python 类中的一个保留方法。在 OOP 概念中,它被称为构造函数。当从类中创建对象时,会调用此方法,它允许类初始化类的属性。我们如何使用 "__init__"?让我们考虑一下我们正在创建一个名为 Car 的类。Car 可以具有诸如“颜色”、“型号”、“速度”等属性以及诸如“启动”、“加速”、“换挡”等方法。示例类 Car(object): def __init__(self, model, color, speed): self.color = color self.speed = ... 阅读更多
4K+ 次浏览
在这篇文章中,我们将讨论如何在 Python 中从超类创建子类。在继续之前,让我们了解什么是类和超类。类是用户定义的模板或原型,从中创建对象。类提供了一种将功能和数据捆绑在一起的方法。通过生成新类,可以创建新对象类型的新实例。类的每个实例都可以与其关联属性相连接以保留其状态。类实例还可以包含用于更改其状态的方法… 阅读更多
416 次浏览
面向对象编程创建可重用的代码模式,以防止项目中代码冗余。创建可循环代码的一种方法是通过继承,当一个子类利用另一个基类的代码时。继承是指一个类使用另一个类中编写的代码。称为子类或子类的类继承自父类或基类的 方法和变量。因为子类继承自父基类,所以子类可以使用父类的代码,允许程序员使用更少的代码行并减少冗余。派生类的声明方式与它们的父类非常相似;但是,一个列表… 阅读更多
268 次浏览
以下代码显示了属性 'foo' 是否在类 A 和 B 中定义或派生。示例类 A: foo = 1 类 B(A): pass print A.__dict__ #我们看到属性 foo 存在于类 A 的 __dict__ 中。所以 foo 在类 A 中定义。print hasattr(A, 'foo') #我们看到类 A 具有该属性,但它是定义的。print B.__dict__ #我们看到属性 foo 不存在于类 B 的 __dict__ 中。所以 foo 没有在类 B 中定义print hasattr(B, 'foo') #我们看到类 B… 阅读更多
291 次浏览
我们有如下定义的类 A 和 B -类 A(object): pass 类 B(A): pass示例A 可以通过两种方式证明是 B 的超类,如下所示类 A(object):pass 类 B(A):pass print issubclass(B, A) #在这里我们使用 issubclass() 方法来检查 B 是否是 A 的子类print B.__bases__ #在这里我们检查 B 的基类或超类输出这将给出输出True (,)