class 定义如下:
class ClassName(ParentClass):
"""class docstring"""
def method(self):
returnclass关键词在最前面ClassName通常采用CamelCase记法- 括号中的
ParentClass用来表示继承关系 - 冒号不能缺少
""""""中的内容表示docstring,可以省略- 方法定义与函数定义十分类似,不过多了一个
self参数表示这个对象本身 class中的方法要进行缩进
In [1]:
class Forest(object):
""" Forest can grow trees which eventually die."""
pass其中 object 是最基本的类型。
查看帮助:
In [2]:
import numpy as np
np.info(Forest) Forest()
Forest can grow trees which eventually die.
Methods:In [3]:
forest = Forest()In [4]:
forestOut[4]:
<__main__.Forest at 0x3cda358>可以直接添加属性(有更好的替代方式):
In [5]:
forest.trees = np.zeros((150, 150), dtype=bool)In [6]:
forest.treesOut[6]:
array([[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
...,
[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False]], dtype=bool)In [7]:
forest2 = Forest()forest2 没有这个属性:
In [8]:
forest2.trees---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-8-42e6a9d57a8b> in <module>()
----> 1 forest2.trees
AttributeError: 'Forest' object has no attribute 'trees'添加方法时,默认第一个参数是对象本身,一般为 self,可能用到也可能用不到,然后才是其他的参数:
In [9]:
class Forest(object):
""" Forest can grow trees which eventually die."""
def grow(self):
print "the tree is growing!"
def number(self, num=1):
if num == 1:
print 'there is 1 tree.'
else:
print 'there are', num, 'trees.'In [10]:
forest = Forest()
forest.grow()
forest.number(12)the tree is growing!
there are 12 trees.