作者monomorium (挑战才要开始)
看板Python
标题Re: [问题] 再请教一个问题
时间Sat Apr 26 20:58:47 2008
小弟的一些见解供参考
用关键字class所定义出来的是使用者自订的资料型态
所谓型态 其实可以当作是某一类东西(或称物件)
在Python里 整数、字串、list等都是一种型态
型态有如种类的说法 例如纸的种类有图画纸、西卡纸等
各种纸的性质可能不太相同
这里写程式的人定义一个叫做Person的型态(或称类别)
其内除了定义初始化的属性 还有定义say_hi的属性(或称方法)
所谓『初始化的属性』是说
一旦写程式的人要用这个新的类别
如他在底下 p = Person('Swaroop')
就是建立一个Person的型态 然後将其指派到p这个变数之中
至於 __init__ 是Python里头内建的用法
当建立新类别的同时 __init__会自动执行
在这里是说当变数p被建立後
变数p同时也就有一个属性 叫做p.name
所以如果这是引入到直译器中 便可以用
print p.name
来看p.name的内容 结果会是
'Swaroop'
至於self 他本身就是自己的意思
在定义内 这是是指型态自己本身
当型态用变数建立後 self就是该变数的名称
say_hi是这种型态里头的一种属性(或称方法)
用p.say_hi()来呼叫
就会去执行say_hi里的陈述
这里所谓的属性 行话称方法
方法的意义跟函数一样
两者的差别是方法是自订型态中使用者自订的
如list里也有sort、pop等方法可用
※ 引述《purestone (天空之子)》之铭言:
: 拜托各位高手指点一下..
: -----------------------------------------
: python 版:
: #!/usr/bin/env python
: # File name: class_init.py
: class Person:
: def __init__(self, name):
: self.name = name
: def say_hi(self):
: print 'Hello, my name is', self.name
: p = Person('Swaroop')
: p.say_hi()
: python 版输出结果:
: $ python class_init.py
: Hello, my name is Swaroop
: -----------------------------------------------
: 请问上述程式的__init__功能是什麽?我知道是初始化,但初始化是什麽?
: self是有什麽涵义吗?为什麽最後一个say_hi()没有self?
: 请问class的功能是什麽?
: 拜托各位高手帮帮忙~我有在看书,但慧根不够,需要有人用白话一点的方式指点一下~
--
门外汉
http://aockc.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.134.104
※ 编辑: monomorium 来自: 118.169.134.104 (04/26 21:26)