免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4423 | 回复: 4
打印 上一主题 下一主题

python中,类里面的方法的参数self是什么意思呢?我没学过其他编程,python是第一次学 [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:55:28
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-18 20:42 |只看该作者 |倒序浏览
最好通俗点,举个例子,谢谢

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:55:28
2 [报告]
发表于 2014-08-18 20:44 |只看该作者
愣是没看懂那个self:
class people:
    __name = 'jack'
    __age = 12

    def getName(self):
        return self.__name
    def getAge(self):
        return self.__age

p = people()
print p.getName(),p.getAge()

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
3 [报告]
发表于 2014-08-18 22:01 |只看该作者
本帖最后由 icymirror 于 2014-08-18 22:01 编辑

如果你有如下的类:
  1. class Cat(object):
  2.     def __init__(self, color):
  3.         self.color = color

  4.     @property
  5.     def color(self):
  6.         return self.color
复制代码
然后,你有两个变量:
blackCat = Cat("black")
whiteCat = Cat("white")
这时,当你想获得某个cat的颜色时,可以用:
blackCat.color
或者
whiteCat.color
而这个self.在函数里面,就是针对当前的实例,而不是针对类。
所以,才会blackCat得到“black”,whiteCat得到"white",而不会出现不知道是什么颜色的问题。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:55:28
4 [报告]
发表于 2014-08-19 04:55 |只看该作者
是这样的意思吗?
例子:
class Person:
def sayHi(self):
print 'Hello, how are you?'

p = Person()
p.sayHi()

# This short example can also be written as Person().sayHi()

解释:
self就是单词的本意,代表该class自身,你在class里定义任意一个带self的变量,例如self.a,那么在该class的任何函数内都可以使用self.a变量.
回复 3# icymirror


   

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
5 [报告]
发表于 2014-08-19 09:45 |只看该作者
回复 4# wto4883204
self指的不是类,而是类的实例。
千万不要混了。
通常情况下:数据内容是各个实例自己管自己的,方法是放在公共区域的。
所以,一般self访问数据是各自的数据,访问方法时,系统给找出在公共区域的函数来让你调用,于是有self.FunctionName()这样的调用,但是它还是通过实例来走到公共区域的。
并不是说这个self就是类的访问用的,它是类的实例用来访问对应的内容的变量。在其它编程语言里,就类似this指针或者this变量的存在。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP