鱼C论坛

 找回密码
 立即注册
查看: 589|回复: 2

python 38课作业求解析

[复制链接]
发表于 2018-11-1 15:33:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么一下程序,t,t1,t2的position都是一样???

因为python基础38课没有听明白self的意思,和函数,函数对象,对象的关系,所以请教一下


import random

class tutles:
        step=1
        health=100

        position=[]
       
        def __init__(self):
                self.x=random.randint(0,10)
                self.y=random.randint(0,10)
                self.position=[self.x,self.y]

               
t=tutles()
print(t.position)

t1=tutles()
print(t.position)

t2=tutles()
print(t.position)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-1 15:37:03 | 显示全部楼层
t=tutles()
print(t.position)

t1=tutles()
print(t1.position)

t2=tutles()
print(t2.position)
你打印的都是t的position没发现吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-2 01:59:32 | 显示全部楼层
函数  指的是一个  用  def  开头 的语句    def  func():   就等于告诉  解释器,我定义了一个函数 叫func
函数对象是指 你虽然定义了这个函数 ,但实际上他在用的时候是以对象出现的, 当你在直接 print(func)    的时候就可以看到func对象在内存中的地址,这个地址就保存了你写的函数具体的逻辑代码
对象是什么,对象的意思 就是 一个称呼吧,这个不怎么好解释,多写代码就懂了。
self 是什么 self 就是类创建的实例,    你写了一个类之后 Class A():  pass       你用的时候,是不是需要   a = A()     创建一个A的实例  ,就像你写了个狗对象,需要出现一只狗,你就得告诉他这里要有一只狗,叫个旺财, 理解这个之后就简单了,我在主代码逻辑里面这样写    A('旺财')     虽然我传了一个参数进去,但是实际上这个参数如果你不用self.name = name   #  name实际上就是 旺财   他是不知道 你这条狗叫旺财的,就等于你虽然说了,但是他没记住,你需要准备的告诉他,这条狗对象的内存地址,以及狗对象有什么属性,你想把这个参数,赋值给什么属性。这几件事做完了,这条狗才在python里面有了名字。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-29 09:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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