返回介绍

01. Python 工具

02. Python 基础

03. Numpy

04. Scipy

05. Python 进阶

06. Matplotlib

07. 使用其他语言进行扩展

08. 面向对象编程

09. Theano 基础

10. 有趣的第三方模块

11. 有用的工具

12. Pandas

定义 class

发布于 2022-09-03 20:46:14 字数 4336 浏览 0 评论 0 收藏 0

基本形式

class 定义如下:

class ClassName(ParentClass):
    """class docstring"""
    def method(self):
        return
  • class 关键词在最前面
  • 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]:

forest

Out[4]:

<__main__.Forest at 0x3cda358>

添加方法和属性

可以直接添加属性(有更好的替代方式):

In [5]:

forest.trees = np.zeros((150, 150), dtype=bool)

In [6]:

forest.trees

Out[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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文