类对象
1.类对象支持两种 *** 作:属性引用和实例化。
属性引用 使用和 Python 中所有的属性引用一样的标准语法:obj.name。类对象创建后,类命名空间中所有的命名都是有效属性名。所以如果类定义是这样:
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
2.那么 MyClass.i 和 MyClass.f 是有效的属性引用,分别返回一个整数和一个方法对象。也可以对类属性赋值,你可以通过给 MyClass.i 赋值来修改它。 __doc__ 也是一个有效的属性,返回类的文档字符串:"A simple example class"。
类的 实例化 使用函数符号。只要将类对象看作是一个返回新的类实例的无参数函数即可。例如(假设沿用前面的类):
x = MyClass()
3.以上创建了一个新的类 实例 并将该对象赋给局部变量 x。
这个实例化 *** 作(“调用”一个类对象)来创建一个空的对象。很多类都倾向于将对象创建为有初始状态的。因此类可能会定义一个名为 __init__() 的特殊方法,像下面这样:
def __init__(self):
self.data = []
4.类定义了 __init__() 方法的话,类的实例化 *** 作会自动为新创建的类实例调用 __init__() 方法。所以在下例中,可以这样创建一个新的实例:
x = MyClass()
5.当然,出于d性的需要,__init__() 方法可以有参数。事实上,参数通过 __init__() 传递到类的实例化 *** 作上。例如,
>>>class Complex:
... def __init__(self, realpart, imagpart):
... self.r = realpart
... self.i = imagpart
...
>>>x = Complex(3.0, -4.5)
>>>x.r, x.i
(3.0, -4.5)
对象其实就是一种封装的概念,它把事物封装成一个类,然后提供类的接口,而具体的过程人们是看不到的。举个例子,比如我用C语言写一个交换函数 swap(a,b)当你引用这个函数时,你可以完全的看到执行的过程。
但是面向对象的编程就不是这样,我写了一个类,然后提供了一个交换的接口。那么当其他人来想使用这个接口的时候就会这样用a.swap(b)它只能看到这个swap()接口,而看不到具体的执行过程,过程本身都是在对象的内部来处理的,而这个类本身就同一类对象的一个集合。
类是一个抽象概念,而对象则是这一个概念下的一个实体。就比如有一个灯泡a,灯泡b都是一个对象,而灯泡这个抽象概念的集合则称为类。
同理,VB在编程的时候也是将对象封装成类,然后来使用的,用户不必去了解具体的执行过程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)