Python的构造函数和析构函数,对象和类的不一样
2012-01-15 20:42
417 查看
1.Python像其他的OOP语言一样在类里面会有构造和析构函数...
类似于PHP的, 构造和析构函数并不需要显式的写出来...他们只是在这个对象生成和销毁的时候才会被调用..
如果显式的定义了,那么在对象被生成和销毁时就会分别的调用这两个函数
构造函数: __init__ 这个函数在用代码生成一个对象的实例的时候就会被调用
析构函数: __del__ 这个函数一般很难知道在哪里会被调用,如果要指明他的调用的话就要用del语句
2.对象和类的变量
对象和类的变量是两个独立的变量.
(1)python的类的变量更像是一个全局的静态变量.在类体里面这样使用ClassName.VariableName,不管新建多少个实例,这个变量始终都类似于静态变量
在类体外部也是用ClassName.VariableName的格式则可以使用这个类的变量
(2)python的对象的变量则是每个实例单独的互不冲突的.在类体中这样使用 self.VariableName.
在类体外部则是用instanceName.VariableName的格式使用变量
Python中所有的类成员(包括数据成员)都是 公共的 ,所有的方法都是 有效的 。
只有一个例外:如果你使用的数据成员名称以 双下划线前缀 比如
类似于PHP的, 构造和析构函数并不需要显式的写出来...他们只是在这个对象生成和销毁的时候才会被调用..
如果显式的定义了,那么在对象被生成和销毁时就会分别的调用这两个函数
构造函数: __init__ 这个函数在用代码生成一个对象的实例的时候就会被调用
析构函数: __del__ 这个函数一般很难知道在哪里会被调用,如果要指明他的调用的话就要用del语句
2.对象和类的变量
对象和类的变量是两个独立的变量.
(1)python的类的变量更像是一个全局的静态变量.在类体里面这样使用ClassName.VariableName,不管新建多少个实例,这个变量始终都类似于静态变量
在类体外部也是用ClassName.VariableName的格式则可以使用这个类的变量
(2)python的对象的变量则是每个实例单独的互不冲突的.在类体中这样使用 self.VariableName.
在类体外部则是用instanceName.VariableName的格式使用变量
Python中所有的类成员(包括数据成员)都是 公共的 ,所有的方法都是 有效的 。
只有一个例外:如果你使用的数据成员名称以 双下划线前缀 比如
__privatevar,Python的名称管理体系会有效地把它作为私有变量。
相关文章推荐
- Python的构造函数和析构函数,对象和类的变量不一样
- C++ 类 & 对象-类成员函数-类访问修饰符-C++ 友元函数-构造函数 & 析构函数-C++ 拷贝构造函数
- 【黑客免杀攻防】读书笔记13 - 面向对象逆向-类、构造函数、析构函数
- 将构造函数,析构函数声明为私有和保护的,那么对象如何创建?
- 【C++面向对象学习笔记】-构造函数和析构函数
- 面向对象、类、字段、属性、构造函数、析构函数
- 在派生类中使用对象成员时,构造函数和析构函数的作用过程。
- Python __init__ 构造函数生成对象时调用关系
- python中的构造函数和析构函数
- Python 构造函数、 Python 析构函数、Python 垃圾回收机制
- 《深度探索c++ 对象模型》有感之构造函数和析构函数不能调用虚函数
- Android SO逆向-对象的构造函数与析构函数
- 【Python】构造函数、析构函数与可变参数传递
- php基础知识:类与对象(3) 构造函数和析构函数
- 宋体、构造函数-浅出C++对象模型——理解构造函数、析构函数执行顺序-by小雨
- C++中基类,派生类 类成员对象的构造函数,析构函数的顺序
- c++类临时对象、复制构造函数、析构函数 VS2017 与gcc 编译器对比
- 类与对象(构造函数,析构函数,静态数据成员)。。。2014.5.19
- 面向对象中的构造函数和析构函数
- C++面向对象复习(三)——构造函数与析构函数的调用顺序