设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
楼主: TERENCE
打印 上一主题 下一主题

脚本中的self.是干吗用的

 关闭 [复制链接]

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
11
 楼主| 发表于 2008-3-21 06:15:34 | 只看该作者
以下引用禾西于2008-3-20 22:04:17的发言:


class A
def c
   p "c"
end
end
class B < A
def initialize
   super()
   self.c
end
end
B.new


看来要使用self. 该class必定要使用继承!!
那super( )在def initialize 才会用的到?
(super又是什么?)

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

12
发表于 2008-3-21 06:16:32 | 只看该作者
super,调用父类的同名方法……
任何方法内只要父类有同名方法都可以用……
建议先去看F1
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

13
发表于 2008-3-21 06:18:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1035
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

14
发表于 2008-3-21 06:19:07 | 只看该作者
super
調用父類同名方法方法
self.
是直接調用
看例子:
class A
  def initialize
    p "i"
  end
  def c
    p "c"
  end
  def d
    p "d"
  end
end
class B < A
  def initialize
    super()
    self.c
  end
  def c
    super()
  end
  def d
    self.c
  end
end
B.new
#=>"i"
#=>"c"
B.new.c
#=>c
B.new.d
#=>c

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
15
发表于 2008-3-21 10:14:28 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

16
发表于 2008-3-21 16:44:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1035
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

17
发表于 2008-3-21 16:53:00 | 只看该作者
其實怎麼說呢,我覺得self.的唯一用途就是繼承的時候調用父類方法而已……==

PS。早上看錯了……原來TERENCE問的是沒有繼承怎麼用……==|||剛起床果然很迷糊。
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

18
发表于 2008-3-21 16:59:13 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

19
发表于 2008-3-21 17:15:08 | 只看该作者
以下引用禾西于2008-3-21 8:53:00的发言:

其實怎麼說呢,我覺得self.的唯一用途就是繼承的時候調用父類方法而已……==

PS。早上看錯了……原來TERENCE問的是沒有繼承怎麼用……==|||剛起床果然很迷糊。

不``self用处多在这里

class Orz
  def orz=(int)
    @orz = int
    @orz *= 9999
  end
  def display(int)
    # 如果这里用 orz = int 的话她会认为是为临时变量orz赋值。
    # 这个时候就需要
    self.orz = 2
    p @orz
  end
end
o = Orz.new
o.display
其实self我觉得跟C++的this差不多```至少我是这么理解的。。。。。。。
-.-
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1035
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

20
发表于 2008-3-21 17:51:20 | 只看该作者
多謝樓上兩位指教…… <(_ _)>||| 此帖的積分真是受之有愧
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-29 12:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表