Python中的构造函数,析构函数,私有属性(方法),共有属性(方法)都是通过名称的约定来辨别的。
python中没有共有和私有权限修饰符,仅仅取决于属性的名称。如果函数,方法或者属性的名称以两个下划线开
始,则说明为私有类型。否则为共有属性。另,python中没有Java中的protect类型。
python中的属性分为静态属性和实例属性。
1.静态属性:可以直接被类调用的属性,也称类属性。
2.私有属性不能被实例化对象直接访问,对象访问私有属性的格式为:实例化对象名._类名__私有属性名
3.数据属性:不需要预先定义,当数据属性初次被使用时,即被创建并且赋值,可以被实例化对象调用。如
class Datattribute:
pass
if __name__ == "__main__":
data=Datattribute()
data.name="我是没有预先定义的数据属性"
print data.name
4.内置属性:类提供一些内置属性,用来管理类的内部关系。
# -*- coding: cp936 -*-
class BuiltAttribute:
def __init__(self):
self.built = 'wo shi fangfa"__init__"gou zao fangfa de shu xing'
class AttendBuilt(BuiltAttribute):
def accept(self):
self.acceptAttend = '我是方法accept中的属性'
if __name__ == "__main__":
buildattribute = BuiltAttribute()
attendbuilt = AttendBuilt()
print '我是继承BuiltAttribute的属性',attendbuilt.built
print '我是使用__bases__内置属性输出的基类组成的元组',AttendBuilt.__bases__
print '我是使用__dict__内置属性输出的属性组成的字典',attendbuilt.__dict__
print '我是使用__module__内置属性输出的类所在的模块名',attendbuilt.__module__
print '我是使用__doc__内置属性输出的doc文档',attendbuilt.__doc__
print '我是使用__name__内置属性输出的类名',AttendBuilt.__name__
类的方法
1.静态方法:使用@staticmethod或者staticmethod()来定义静态方法
可以使用类和实例化对象来访问静态方法,但是不能直接访问私有方法。
2.类方法和类实例对象:使用@classmethod指令声明类方法,实例方法不需要使用指令来声明
3.内置方法:__init__(self,...)初始化对象,在创建新对象前调用,python中的构造函数
__del__(self)释放对象,在对象被删除前调用,python中的析构函数
__new(self,*args,**ked)实例的生成操作,在创建对象时被调用