array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 python基础之面向对象01 - 爱码网

什么是面向对象?

  所谓面向对象就是将那些具有共同特质的事物组成一个类(Class),在类中为这些特质定义一个个方法(函数)。

  具体一点,比如说英雄联盟。在英雄联盟中我们可以把所有的英雄划分为一个英雄类,这个类包含血量/蓝量/攻击力/法术强度/移动速度……的基本属性,同时我们为这些英雄定义了买装备,前后左右移动,受到伤害掉血,释放技能……的功能或者方法,这些基本属性和功能就组成了一个较为完整的类。

  实际上,类就像一个模版,当我们根据这个英雄类创建英雄盖伦时,就需要将模版中的某些数值变更一下(比如说盖伦是不需要蓝的),就初步形成了盖伦的雏形。这个'英雄盖伦'就是基于'英雄类'的一个'实例(Instance)'。通过这个实实在在的盖伦,我们就可以实现类中所定义的方法了,比如说买装备等等。

例子:

class Hero(object):
    hp=100
def move(self): print('move!!') def attack(self): print('attack') garen=Hero() garen.move() #结果 move!!

如何定义类?

  在上面的例子就是定义类的方式。

  在python中,定义类是通过class关键字

class class_name(object):     
    pass

  class后紧跟类的名称,类名通常使用大写字母开头,后面紧跟(object)。括号中的object表明了该类继承于哪个类(类事可以继承的)。一般所有的类都继承于object。就像Linux中的init进程,他是所有进程的父进程。而object是所有类的父类。

  定义完了类,就可以根据类创建一个实例。

instance_name=class_name()

--让类接收参数:

  我们所定义的类并没有接收参数,而实际中,很多类都是可以接收参数的。

class hero(object):
    hp=100     #血量暂时设定为100
    def __init__(self,mp):     #mp即蓝量
        self.mp=mp
    def move(self):
        print('%s move!!'%self)
    def attack(self):
        print('attack')
    def print_mp(self):
        print(self.mp)
garen=hero(None)

上面代码中有一个__init__函数,当我们garen=hero(None)时,就是引用了这个函数。__init__函数中的参数第一个必须是self(在类中创建的函数第一个参数必须是self),这个self表示实例本身self表示实例本身self表示实例本身!!!

 

class hero(object):
    hp=100
    def __init__(self,mp):
        self.mp=mp
        print(self)
garen=hero(None)
<__main__.hero object at 0x0337F610>

 既然知道self表示实例本身,那么上例中的self就表示garen,self是不需要传值的,garen=hero(None)中的None传给了mp。而self.mp=mp则是将mp绑定到实例自身。

类就是许多特殊函数的集合,这个特殊指的是:

   1每个函数的第一个参数为self,并且self不需要传值。

   2每个函数只能被属于此类的实例调用,这也是面向对象的一个特色:数据封装。

除此之外类中的函数与正常函数没有差别。另外我们一般称类中的函数为类的方法

--下面我们来看一看类与实例的内存分配。

 

class hero(object):
    hp=100
    def __init__(self,mp):
        self.mp=mp
    def move(self):
        print('move!!')
    def attack(self):
        print('attack')
    def print_mp(self):
        print("his mp is %s "%(self.mp))

garen=hero(None)
ahri=hero(100)
print(id(garen.mp))
print(id(ahri.mp))
#结果两个址不同
1466583752
1466755488
所传参数在内存中的地址

相关文章:

  • 2018-09-20
  • 2018-01-26
  • 2019-02-26
  • 2019-08-22
  • 2019-08-26
  • 2019-10-31
  • 2019-10-09
  • 2018-05-01
猜你喜欢
  • 2020-02-16
  • 2018-01-07
  • 2018-09-28
  • 2018-07-13
  • 2019-12-20
  • 2019-11-26
  • 2021-12-10
相关资源
相似解决方案