python类的问题

vose2008 2012-04-25 12:45:18
LearnPythonTheHardWay中42节的附加题,关于使用engine和map两个类来重新构建游戏,但是没有头绪,类之间如何传递参数呢?engine和map之间怎么连接起来?
...全文
179 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
try__again 2012-05-03
  • 打赏
  • 举报
回复
我觉得7楼正解
我不理解楼主说的全盘放入是什么意思

m是map类的一个实例
7楼的第一种方式就将m作为参数传递
第二种方法是将m.frist作为参数传递
vose2008 2012-05-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

m = Map()
a_game=Engine(m.first)

这个不就是一个一个传了。
[/Quote]

整个map()放入m,然后m放入Engine,不是全盘放入?
地瓜科技 2012-05-02
  • 打赏
  • 举报
回复
m = Map()
a_game=Engine(m.first)

这个不就是一个一个传了。
vose2008 2012-04-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

1.Engine的__init__输入参数是start,看你的写法是想传入一个函数,可是你传入的first并未定义;

2.Map这个class的函数first定义时缺少self参数,这是不能省略的

3.不必非要传入一个函数,传入一个class对象也未尝不可,只要你知道怎么取到这个函数即可

修改好的,可运行的你的代码
Python code
class Engine:
……
[/Quote]

这样不就是把,Map全盘放到Engine中了么,能一个一个传递么?
薛定谔之死猫 2012-04-27
  • 打赏
  • 举报
回复
二楼说的都是大个头的书,先找本薄一点的入门级书看看,然后进阶时候再选择性看那些大个头的书好些,不然进度太慢~
libralibra 2012-04-25
  • 打赏
  • 举报
回复
1.Engine的__init__输入参数是start,看你的写法是想传入一个函数,可是你传入的first并未定义;

2.Map这个class的函数first定义时缺少self参数,这是不能省略的

3.不必非要传入一个函数,传入一个class对象也未尝不可,只要你知道怎么取到这个函数即可

修改好的,可运行的你的代码
class Engine:
def __init__(self,start):
self.start=start
def play(self):
next = self.start
next()

class Map:
def first(self):
print '.....'

m = Map()
a_game=Engine(m.first)
a_game.play()


传入对象的例子
class Engine:
def __init__(self,start):
self.start=start.first
def play(self):
next = self.start
next()

class Map:
def first(self):
print '.....'

m = Map()
a_game=Engine(m)
a_game.play()



vose2008 2012-04-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

class用来保存数据和操作数据的方法
参数传递的时候把整个class对象传递过去就行了
[/Quote]

class Engine:
def __init__(self,start):
self.start=start
def play(self):
next=self.start
next()

class Map:
def first():
Print "……………………"

a_game=Engine(first)
a_game.play()

然后说找不到first
libralibra 2012-04-25
  • 打赏
  • 举报
回复
class用来保存数据和操作数据的方法
参数传递的时候把整个class对象传递过去就行了
vose2008 2012-04-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

看看《python核心编程》、《python基础编程》、《Learning Python》、《Programming Python》
[/Quote]
http://readthedocs.org/docs/learn-python-the-hard-way-zh_cn-translation/en/latest/ex42.html
这个的附加题第二题
python上是用的《简明 Python 教程》和《LearnPythonTheHardWay》
vose2008 2012-04-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你先把语言学会吧,设计问题需要慢慢积累,以后你可以看看设计模式。
[/Quote]

http://readthedocs.org/docs/learn-python-the-hard-way-zh_cn-translation/en/latest/ex42.html
是这样的,已经学到了类了,但对于其类之间的数据传递不清楚,所以附加题,毫无思绪
bugs2k 2012-04-25
  • 打赏
  • 举报
回复
看看《python核心编程》、《python基础编程》、《Learning Python》、《Programming Python》
fibbery 2012-04-25
  • 打赏
  • 举报
回复
你先把语言学会吧,设计问题需要慢慢积累,以后你可以看看设计模式。

37,741

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧