`

实例方法和类方法(补)

    博客分类:
  • Ruby
阅读更多
看到一个人这样用module,让我迷糊了半天
ruby 代码
  1. module M   
  2.   def module_method   
  3.   end  
  4.   extend self  
  5. end  


我瞅了半天那个extend self,心想,难道这样子不会引起循环么?每次碰到这句话都给自己建一个单件类,然后在单件类中include M,到了include M的时候又要碰到extend self,然后给这个单件类再建一个单件类,继续include。。。无限循环?

但是把上述代码写了一下发现,这个extend self在M的单件类中根本没有执行?因为我对extend和include的实现不太清楚,只能猜想,在include和extend的时候,只有“方法的定义”会被执行,类似于变量定义,表达式求值,方法调用等等统统忽略,只有这样,才能符合上述现象。猜了半天,找不到头绪。回家看看ruby源代码。

分享到:
评论

相关推荐

    java中set、list和map的使用方法实例

    // java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...

    论文研究-基于模糊加权相似度量的粗糙集数据补齐方法.pdf

    鉴于此,引入了模糊加权相似的概念,根据每个条件属性的重要性以及决策属性对条件属性的依赖度,计算对象间的相似性,提出基于模糊加权相似性度量的粗糙集数据补齐方法,并通过实例计算以及与现有算法的比较分析,...

    Flash CS5实例教程(第2版) 光盘

    本书全面、系统地介绍了Flash CS5的基本操作方法和网页动画的制作技巧,包括FlashCS5基础入门、图形的绘制与编辑、对象的编辑与修饰、文本的编辑、外部素材的应用、元件和库、基本动画的制作、层与高级动画、声音...

    vc++ 开发实例源码包

    如题,此实例非常适合学习,重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其...

    JAVA面向对象详细资料

    31.7 如何区分静态方法和实例方法的应用 46 31.8 静态导入(1.5新特性) 46 32 单例模式 47 32.1 饿汉模式 47 32.2 懒汉模式 47 33 接口(interface) 48 33.1 如何创建一个接口。 48 33.2 如何使用接口 48 33.3 ...

    程序天下:JavaScript实例自学手册

    14.25 前面补0的方法 第15章 图形、图像的特效 15.1 图片变形效果 15.2 图像的翻转效果 15.3 图像的模糊效果 15.4 图像的水印效果 15.5 图形淡出淡隐 15.6 图像的渐隐播放效果 15.7 文字环绕图片 15.8 切换图片的...

    实例解读51单片机完全学习与应用

    2.1.6 焊接方法 2.2 ■单片机系统设计流程 2.2.1 需求分析 2.2.2 电路设计 2.2.3 程序设计 2.2.4 系统调试 2.3 ■应用体验——单片机控制下的 发光二极管 2.3.1 发光二极管工作原理 2.3.2 单片机的控制 2.3.3 体验...

    《程序天下:JavaScript实例自学手册》光盘源码

    14.25 前面补0的方法 第15章 图形、图像的特效 15.1 图片变形效果 15.2 图像的翻转效果 15.3 图像的模糊效果 15.4 图像的水印效果 15.5 图形淡出淡隐 15.6 图像的渐隐播放效果 15.7 文字环绕图片 15.8 切换图片的...

    ruby-oo-self-count-sentences-lab

    计数句子实验室目标练习在类上定义实例方法。 练习定义实例方法,这些实例方法使用self关键字对调用该方法的对象进行操作。 了解有关猴子修补的信息。概述在本实验中,您将向Ruby的String类添加一些实例方法。 我们...

    oo-counting-sences-v-000

    数数句子目标练习在类上定义实例方法。 练习定义实例方法,这些实例方法使用self关键字对调用该方法的对象进行操作。 了解有关猴子修补的信息。概述在本实验中,您将向Ruby的String类添加一些实例方法。 我们通常...

    oo-counting-sentences-online-web-sp-000

    练习在类上定义实例方法。 练习定义实例方法,这些实例方法使用self关键字对调用该方法的对象进行操作。 了解有关猴子修补的信息。 概述 在本实验中,您将向Ruby的String类添加一些实例方法。我们通常希望避免更改...

    ruby oo自我计数句子实验室sfo01-seng-ft-071320

    练习在类上定义实例方法。 练习定义实例方法,这些实例方法使用self关键字对调用该方法的对象进行操作。 了解有关猴子修补的信息。 概述 在本实验中,您将向Ruby的String类添加一些实例方法。 我们通常希望避免...

    Tweener 缓动类 (AS3)

    Tweener是为flash开发的补间引擎,多年来赢得了...与Adobe的Tween类不同,你不需要实例化主类Tweener。而是调用Tweener的静态方法。主要的方法是addTween。就像这样: Tweener.addTween(target, tweeningParameters);

    Delphi即时通信程序,类似QQ聊天.rar

    Delphi编写的即时通信程序,类似QQ聊天,源码内包括了控件补盯配置方法说明和各个模块的代码等。  一个自我感觉很好的通信程序,它的特点:  1.数据包格式全部自己定义。  所有的定义和通信核心类全部在COMM...

    Python基础学习——类与对象2

    class BoyFriend: # 类属性 ... # 类方法/函数 【自动给补齐了一个self self是实例本身 固定的占位符】 def cooking(self):#会做饭 #实例方法 print(self.name+"会做饭",self.height) @classmethod #

    突破程序员基本功的16课.part2

    2.1.1 实例变量和类变量的属性 2.1.2 实例变量的初始化时机 2.1.3 类变量的初始化时机 2.2 父类构造器 2.2.1 隐式调用和显式调用 2.2.2 访问子类对象的实例变量 2.2.3 调用被子类重写的方法 2.3 父子实例的...

    入门学习Linux常用必会60个命令实例详解doc/txt

    umount 命令是mount命令的逆操作,它的参数和使用方法和mount命令是一样的。Linux挂装CD-ROM后,会锁定CD—ROM,这样就不能用CD- ROM面板上的Eject按钮弹出它。但是,当不再需要光盘时,如果已将/cdrom作为符号链接...

    基于weka的数据分类分析实验报告.doc

    本实验的基本内容是通过使用weka中的三种常见分类方法(朴素贝叶斯,KNN和决策 树C4.5)分别在训练数据上训练出分类模型,并使用校验数据对各个模型进行测试和评 价,找出各个模型最优的参数值,并对三个模型进行...

Global site tag (gtag.js) - Google Analytics