鱼C论坛

 找回密码
 立即注册
查看: 1935|回复: 9

[已解决]类里面的函数的问题

[复制链接]
发表于 2017-11-6 14:12:59 | 显示全部楼层 |阅读模式

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

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

x
class Ball:
    def setName(self,name):
        self.name = name                 <----  就是这个
    def kick(self):
        print("我叫%s,噢~谁踢我?!" % self.name)             请教:这里的self.name是调用上面一个函数的变量,难道函数外部是可以直接访问另一个函数的内部的变量或者说函数体?为什么?求解答?万分感谢!!!
最佳答案
2017-11-6 15:18:03
self相当于c++中的this指针,用来告诉编译器我们调用的是对象自己的东西
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-11-6 15:05:30 | 显示全部楼层
可能楼主是从一些面向过程的语言(比如 c 语言)过来的
这里应用了面向对象的思想
在第一个方法(也就是你所说的函数)中, 箭头所指的语句表示声明一个类属性(也就是你说的变量), 并且给他赋值为 name
而第二个方法则是访问这个类属性

不懂欢迎追问
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-6 15:16:51 | 显示全部楼层
hldh214 发表于 2017-11-6 15:05
可能楼主是从一些面向过程的语言(比如 c 语言)过来的
这里应用了面向对象的思想
在第一个方法(也就是你所 ...

其实我没有编程基础,我是搞网络的,想学点编程帮助运维工作,《零基础入门学习python》是我接触到的第一本编程课程。
还是不大理解,能讲详细点吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-6 15:18:03 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
self相当于c++中的this指针,用来告诉编译器我们调用的是对象自己的东西
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-6 15:24:30 | 显示全部楼层
BngThea 发表于 2017-11-6 15:18
self相当于c++中的this指针,用来告诉编译器我们调用的是对象自己的东西

我的理解是这个类(Ball)里有2个函数,因为有了self这个指针(相当于门牌号),所以可以让一个函数直接访问另一个函数内的东西。这样对吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-6 15:30:02 From FishC Mobile | 显示全部楼层
对,因为他们都在一个类里面
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-6 15:41:21 | 显示全部楼层
BngThea 发表于 2017-11-6 15:30
对,因为他们都在一个类里面

以前安照书上的理解,self的作用是标记不同实例对象用的,比如a = Ball();b = Ball(),a和b是2个不同实例对象通过self来区分标记。
现在看来self有2个标记作用: ①可以将不同实例对象通过self来区分标记;
                                             ②可以让一个类内的几个函数相关联,告诉编译器我们调用的是对象自己的东西。
这样理解对吗?

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-6 16:20:36 From FishC Mobile | 显示全部楼层
694061755 发表于 2017-11-6 15:41
以前安照书上的理解,self的作用是标记不同实例对象用的,比如a = Ball();b = Ball(),a和b是2个不同实 ...

对就是这个意思吧,self就是来指向实例化对象本身的,并且对不同的实例化化对象加以区分
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-6 16:37:16 From FishC Mobile | 显示全部楼层
694061755 发表于 2017-11-6 15:41
以前安照书上的理解,self的作用是标记不同实例对象用的,比如a = Ball();b = Ball(),a和b是2个不同实 ...

对,可以这样理解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-6 19:00:07 | 显示全部楼层
BngThea 发表于 2017-11-6 16:37
对,可以这样理解

谢谢大家,非常感谢!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 17:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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