关于Python中定义类时 self 的理解
2015-01-20 17:52
615 查看
一直在用A byte of Python这本书学Python,时间跨度托得有点久。
今天才刚接触到类(class)的概念,敲完了目前最长的一个例子,加空行加注释一共60行(见笑了)。
对于class,定义一个类名称,然后同样要缩进,定义类中的方法(methods),如同单独定义函数(function),唯一的不同点是:
第一个定义的 method 一般是 __inti__ (初始化),形式是“__inti__(self, name)”,实际上用的变量只有name一个,self相当于这个“函数”的默认参数,因此以后在类中定义method,只需要在变量的括号里多加上 self 就行了。
使用类时的格式为“实例(stance)名=类名(变量名),如: droid1 = Robot("R2-D2")。
调用类中的 method 用法和调用函数相同,如:droid1.say_hi()。
不过那个例子中,还有个地方不理解:
其中的变量名”cls“改成其他名称(如self)也能正常运行。
难道是声明后面的函数才是方法?
对method的理解也不够,晚上回去继续学习。
欢迎探讨指教!
今天才刚接触到类(class)的概念,敲完了目前最长的一个例子,加空行加注释一共60行(见笑了)。
对于class,定义一个类名称,然后同样要缩进,定义类中的方法(methods),如同单独定义函数(function),唯一的不同点是:
第一个定义的 method 一般是 __inti__ (初始化),形式是“__inti__(self, name)”,实际上用的变量只有name一个,self相当于这个“函数”的默认参数,因此以后在类中定义method,只需要在变量的括号里多加上 self 就行了。
使用类时的格式为“实例(stance)名=类名(变量名),如: droid1 = Robot("R2-D2")。
调用类中的 method 用法和调用函数相同,如:droid1.say_hi()。
不过那个例子中,还有个地方不理解:
@classmethod def how_many(cls): """Prints the current population.""" print "We have {:d} robots.".format(cls.population)其中的 @classmethod 在这里是什么作用?
其中的变量名”cls“改成其他名称(如self)也能正常运行。
难道是声明后面的函数才是方法?
对method的理解也不够,晚上回去继续学习。
欢迎探讨指教!
相关文章推荐
- Python | 关于 类、实例、self、__init__ 的理解
- 对于python中的self,cls,decorator的理解
- python self,cls,decorator的理解
- [Python]关于os.walk的理解
- 关于数组的复习以及定义一个类(关于内存的理解)
- 如何理解并正确使用python中的self init
- 理解 Delphi 的类(八) - 关于类的定义
- 关于 [[self class] alloc]的理解
- 如何理解并正确使用python中的self
- Python开发:关于Else语句的总体理解
- Python中self的理解
- 关于python中self
- 深入理解python之self
- Python中self的理解
- 深入理解python之self
- python self,cls,decorator的理解
- 理解 Delphi 的类(八) - 关于类的定义
- 关于 @synchronized(self) 的理解
- 深入理解python之self
- python关于__all__的定义