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

Project1

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

[已经解决] 怎么在不生成实例的情况下调用方法

 关闭 [复制链接]

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

11
 楼主| 发表于 2009-8-9 13:25:17 | 只看该作者
a=ORZ.new.method :done

这不就是生成了原类的实例吗
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

12
发表于 2009-8-9 14:07:10 | 只看该作者
如果要真·执行的话
XD我只找到instance_method可以拿到一个UnbonudMethod,之后一定要随便绑定一个对象Orz
怨念脚本一段
  1. class A
  2.   def a
  3.     p "a"
  4.   end
  5. end

  6. t = A.instance_method(:a)
  7. p t
复制代码
话说……不能用module_function吗0 0
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

13
 楼主| 发表于 2009-8-9 14:59:34 | 只看该作者
之后一定要随便绑定一个对象
经过我的测试不能随便绑定,只能绑在原类的实例上才行
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

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

第1届Title华丽大赛新人奖

14
发表于 2009-8-10 21:14:40 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
49
在线时间
0 小时
注册时间
2008-4-24
帖子
331
15
发表于 2009-8-13 21:39:48 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

16
 楼主| 发表于 2009-8-15 12:28:52 | 只看该作者
ORZ.new应该是为了给方法找个对象而已,或者未生成ORZ实例,或者生成而被GC收回,二者的结果都是只生成method对象...过程不清楚
我一直想说的就是方法必须有对象...所以我也一直认为"如果不对原类作修改,有办法调用吗" ...
沉影不器 发表于 2009-8-10 21:14

意思也就是说,对于一个已经定义好的类,再不对这个类做修改的情况下,调用里面的实例方法就必须生成实例对吗

ORZ.new就是生成那个类的实例了,匿名实例也是实例
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

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

第1届Title华丽大赛新人奖

17
发表于 2009-8-16 18:12:53 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

18
 楼主| 发表于 2009-8-17 07:46:47 | 只看该作者
生成实例要是只耗内存的话也就GC了,但是如果里面定义了很奇怪的initialize……
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-6-3
帖子
522
19
发表于 2009-8-17 15:45:18 | 只看该作者
应该没办法把实例方法当成静态方法调用吧
啊……正太好可爱啊~~~~ 偶死了,2009年重生
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
400 小时
注册时间
2005-10-24
帖子
634
20
发表于 2009-8-17 16:09:11 | 只看该作者
如果只是要避免某一个类的initialize方法,那么可以新写一个类来继承原来这个类,随便定义一下initialize,然后如IamI所说那样拿到一个UnboundMethod,把这个东西bind到我们新写的类的对象上,然后如沉影不器所说那样执行 0v0

这么做是因为bind方法只认kind_of?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 20:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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