文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

pyhton数据挖掘self原理是什么

2023-06-25 17:07

关注

本篇内容主要讲解“pyhton数据挖掘self原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pyhton数据挖掘self原理是什么”吧!

1. 什么是class,什么是instance,什么是object?

Class: 可以理解为一个组装工厂。假如我们要生产一个机器人,那我们先要搭个工厂吧。先确定:我们要先安装胳膊,再安装头,我们的小破机器人的流水线就搭好了。这个工厂比较智能,胳膊和头的数量都可以调。

class BuildRobot():    def __init__(self,armcount,headcount):        self.armcount = armcount        self.headcount = headcount

所以这里的class,就是搭了一个工厂叫BuildRobot。'__init__' 就是告诉这个流水线,首先你需要这个机器人有几个胳膊(‘armcount'),有几个脑袋(‘headcount')。先忽略一下这里的self,以后讲。

这个时候你可以run一下,这样你的class就搭好了。可是这时的工厂,因为你没有开始生产,是没有任何产出的。下面就是instance

instance:可以理解为启动一次工厂生产出的机器人。现在我们用之前搭的工厂生产一个正常一点的机器人,两个胳膊一个脑袋:

normal_robot = BuildRobot(2,1)

查看一下胳膊数对不对?

我们再来一个 不太正常的机器人:

weird_robot = BuildRobot(4,1)

normal_robot 和weird_robot 都是instance。他们虽然胳膊数量不一样,但是本质上都是由这个class造出来的,由胳膊和头组成的机器人。

object: 这个就比较麻烦了,大部分情况下,object和instance的含义是一样的,都是指这个造出来的robot。这两者的区别,只是在英语语言环境下的区别:

normal_robot is an instance of ‘buildrobot'

normal_robot is a ‘buildrobot' object

上面这两个说法是等价的。

2. 什么是method,什么是function?

两者都由def定义,稍微粗糙一点的理解就是,在class里面的function叫method。所以,method是和class,instance有关的一种function。

举个栗子:

还是上面的工厂,我们现在加装一个车间,负责把胳膊上色:

class BuildRobot():    def __init__(self,armcount,headcount):        self.armcount = armcount        self.headcount = headcount    def paintarm(self,color):        print("paint arm:",color)

这个paintarm,就是一个method。还是一样,现在这个class没有生产,因此这个method也没有任何实际的产品出来。我们只能先生产出一个instance来:

colorful_robot = BuildRobot(2,1)

好的我们现在有一个两个胳膊一个头的robot了。这时,我们的robot还是没有上色的,因为我们没有让这个instance进入上色的那个车间。现在我们让这个robot进入车间,涂个红色。

colorful_robot.paintarm('red')

paint arm: red

上面的过程,就是call这个paintarm method。几个点:

如果没有先造一个机器人,这个车间就没有办法给胳膊上色,因此要上色,就必须先造一个机器人出来。所以,method是依赖于instance的。

这个车间只能给这个工厂产出的robot的胳膊上色,你从别的工厂拿一个车过来让他上色,他是不干的。因此,method是依赖于class的。只有这个class创建的instance,才能call这个method。

假如我把上色这个活,外包了。我就在外面另建了个工厂,专门上色,这就是function:

def outsourcing_paint(robot,color):    print("paint",robot,"arm:",color)outsourcing_paint(colorful_robot,'red')

paint <__main__.BuildRobot object at 0x116b434a8> arm: red

这个外包的上色工厂,不管你这个东西是从哪个工厂来的,无论你是个机器人还是机器狗,反正我就拿来,给胳膊上色。

看到这里,应该就明白function和method的区别了。

注意method其实有两种,一种是instance method,一种是class method。

本篇的讨论,我们先限定在instance method里。

3. 重点SELF分析

把class, method讲明白以后,终于能讲self了。通过上面的例子,我们注意到

outsourcing_paint(colorful_robot,'red')
colorful_robot.paintarm('red')

到此,相信大家对“pyhton数据挖掘self原理是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯