类是面向对象程序设计实现信息封装的基础。类是一种用户定义类型,其实质为一种数据类型,类似于int、char等基本类型。其不同点在于它是一种复杂的数据类型。因为它的本质是是类型,而不是数据,所以不存在于内存中,不能被直接操作。只有被实例化为对象时,才会变得可操作。
类定义:
Python中,类的定义如下(class):
class A(object):
def foo(self, x):
print x
class后面紧跟着的是类名,也就是A,类名通常大写开头,接着括号里面填写是从哪个类继承下来的。通常,如果如果没有合适的类,那么可以使用object(通用几乎)
定义好类,就可以根据A类创建出其实例继而调用:
a = A()
a.foo(1)
结果:
1
同时,也可以给实例变量绑定属性:
a.name = 'aaaa'
print a.name ==> 'aaaa'
方法:
在Python类中有3中方法,即静态方法(staticmethod),类方法(classmethod)和实例方法:
普通的类方法foo()需要通过self参数隐式的传递当前类对象的实例。 @classmethod修饰的方法class_foo()需要通过cls参数传递当前类对象。@staticmethod修饰的方法定义与普通函数是一样的。
例子:
#coding:utf-8
import time
createTime = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
class A(object):
def foo(self, x):
print 'self:',self
print x
@classmethod
def class_foo(cls, x):
print 'cls:',cls
print x
@staticmethod
def static_foo(x):
print x
a = A()
a.foo(1)
A.class_foo(2)
A.static_foo(3) #与a.static_foo结果一样
结果:
self: <__main__.A object at 0x000000000232CDA0>
1
cls: <class '__main__.A'>
2
3
Process finished with exit code 0