创建类
Python 类使用 class 关键字来创建。简单的类的声明可以是关键字后紧跟类名:
class ClassName(bases):
'class documentation string'
class_suite
实例化
通过类名后跟一对圆括号实例化一个类
mc = MyClass() # instantiate class 初始化类
‘int()’构造器
def __int__(self):
pass
注意:self类似Java的this关键字作用,它代码指向自身实例的引用
类属性
python的属性与Java和C++等面向对象语言不同,python的属性即包括了数据成员还包括函数元素,通过句点符号来访问.
特殊数据内建属性
C.name 类C的名字(字符串)
C.doc 类C的文档字符串
C.bases 类C的所有父类构成的元组
C.dict 类C的属性
C.module 类C定义所在的模块(1.5 版本新增)
C.class 实例C对应的类(仅新式类中)
特殊方法内建属性
dir():获得类属性或者实例属性名字列表.
静态变量属性
直接在class作用域定义
class C(object):
foo = 100
实例变量属性
python的实例属性与Java和C++等不同.在Java和C++中,实例属性必须首先声明/定义,而python实例属性是动态创建。设置实例的属性可以在实例创建后任意时间进行,也可以在能够访问实例的代码中进行。构造
器init()是设置这些属性的关键点之一。
def __init__(self, name, data):
self.name = name
self.data = "123'
注意:self类似Java的this关键字作用,它代码指向自身实例的引用
方法属性
分为实例方法和类方法.实例方法只属于一个实例;而类方法即属于类所有,也属于实例所有.
实例方法
class MyClass(object):
def myNoActionMethod(self):
pass
注意:self类似Java的this关键字作用,它代码指向自身实例的引用
静态方法
静态方法是类级别的方法,不需要实例化类就可以直接调用.有两种方法定义
@staticmethod
def foo():
print 'call static method'
def foo():
print 'call static method'
foo = staticmethod(foo)
类方法
静态方法是类级别的方法, 与静态方法不同的是,它必须显示传入cls类参数;而且如果还需要调用类中其他的静态方法,或者类方法的函数, 要定义成类方法. 与静态方法类似,也有两种方法定义.
@classmethod
def bar(cls):
print 'call class method and access static varible(staticVar): ', cls.staticVar
def bar(cls):
print 'call class method and access static varible(staticVar): ', cls.staticVar
bar = classmethod(bar)
实例详解
class Target():
'This is Target definition'
staticVar = 'v1.0'
def __init__(self, name = 'default', data = 0):
self.name = name
self.data = data
print "init instance"
def main():
print "this is a test function"
'''
可以用装饰器定义静态方法
@staticmethod
def foo():
print 'call static method'
'''
def foo():
print 'call static method'
foo = staticmethod(foo)
'''
可以用装饰器定义类方法
@classmethod
def bar(cls):
print 'call class method and access static varible(staticVar): ', cls.staticVar
'''
def bar(cls):
print 'call class method and access static varible(staticVar): ', cls.staticVar
bar = classmethod(bar)
if __name__ == '__main__':
main()
target = Target('aaa', 123)
print 'name is: ', target.name
print 'data is: ', target.data
print 'target.__doc__ is: ', target.__doc__
print 'Target.__dict__ is: ', Target.__dict__
print 'staticVar is: ', Target.staticVar
print 'dir() is: ', dir(Target)
Target.foo()
Target.bar()
输出
this is a test function
init instance
name is: aaa
data is: 123
target.__doc__ is: This is Target definition
Target.__dict__ is: {'__module__': '__main__', 'foo': <staticmethod object at 0x7f3fd9310cc8>, 'bar': <classmethod object at 0x7f3fd9310d38>, 'staticVar': 'v1.0', 'main': <function main at 0x7f3fd930e758>, '__doc__': 'This is Target definition', '__init__': <function __init__ at 0x7f3fd930e6e0>}
staticVar is: v1.0
dir() is: ['__doc__', '__init__', '__module__', 'bar', 'foo', 'main', 'staticVar']
call static method
call class method and access static varible(staticVar): v1.0
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
python面向对象精彩讲解视频,详细讲解了python在面向对象中的用途。
本文实例讲述了Python面向对象之类和对象。分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态); 属性一般是一个个变量;方法是一个个函数; #类的属性 就是 类变量 #...
包括 python的安装和环境配置、python的基本语法、模块和函数、内置数据结构、字符串和文件的处理、正则表达式的使用、异常的捕获和处理、面向对象的语言特性和设计、python的数据库编程、wxpython库的使用、html...
本文实例讲述了Python面向对象封装操作。分享给大家供大家参考,具体如下: 目标 士兵突击案例 身份运算符 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 ...
第五章python面向对象基础详解一.理解面向对象二、类和对象三、添加和获取对象属性四、魔法方法五、继承 一.理解面向对象 面向对象就是将编程当成一个事物,对外界来说,事物是直接使用的,不用去管内部情况。编程...
本文实例讲述了Python面向对象封装操作。分享给大家供大家参考,具体如下: 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的...
Python基础教程详解 【第49课】 面向对象(3) 面向对象是比较复杂的概念,初学很难理解。我曾经对人夸张地说,面向对象是颠覆你 编程三观的东西,得花上不少时间才能搞清楚。我自己当年初学Java的时候,也是折腾 了...
面向对象 概念 了解一些名词:类、对象、实例、实例化 类:具有相同特征的一类事物(人、狗、老虎) 对象/实例:具体的某一个事物(隔壁阿花、楼下旺财) 实例化:类——>对象的过程(这在生活中表现的不明显,我们在...
主要介绍了python对象及面向对象技术,结合实例形式详细分析了Python面向对象所涉及的类、对象、方法、属性等概念与使用技巧,需要的朋友可以参考下
【Python高级开发课程 高级教程】课程列表01 Python语言开发要点详解.pptx02 Python数据结构.pptx03 Python函数和函数式编程.pptx04 Python面向对象编程.pptx05 Python数据采集 网络爬虫 网页爬虫.pptx06 Python操作...
主要介绍了Python面向对象编程之继承与多态,结合实例形式详细分析了Python面向对象编程中继承与多态的概念、使用方法及相关注意事项,需要的朋友可以参考下
Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的...这篇文章主要介绍了Python面向对象总结及类与正则表达式 ,需要的朋友可以参考下
主要介绍了Python面向对象类的继承,结合实例形式详细分析了Python面向对象程序设计中类的继承原理、定义、使用方法及相关操作注意事项,需要的朋友可以参考下
主要介绍了Python面向对象之接口、抽象类与多态,结合实例形式详细分析了Python面向对象中接口、抽象类及多态的概念、用法及相关操作注意事项,需要的朋友可以参考下
本文实例讲述了Python3.5面向对象编程。分享给大家供大家参考,具体如下: 1、面向过程与面向对象的比较 (1)面向过程编程(procedural programming) 面向过程编程又被称为:top-down languages,程序从上到下 一...
主要介绍了Python中的面向对象编程详解(上),本文讲解了创建类、实例化类、类属性、特殊方法内建属性、静态变量属性、实例变量属性、方法属性、静态方法、类方法等内容,需要的朋友可以参考下
python版,面向对象编程分三篇给大家介绍,这是第一篇,欢迎阅读学习,一起进步 Python专栏请参考:人生苦短-我学python 文章目录一.面向对象编程介绍二.类和对象三.类的构成四.定义类 和 创建对象五.对象属性获取...