self、__doc__、__init__、__name__
来源:互联网 发布:哪家券商服务好 知乎 编辑:程序博客网 时间:2024/05/21 11:34
(1)self参数用于类定义中,不可省略,独立的函数或方法中不含有self参数。self不是Python的关键字,可替换成别的。在类实例化时,self自动绑定到self实例上,指向类实例对象本身,已完成类对自身属性的调用。
>>> class Person: def __init__(self,name,age): self.name = name self.age = age>>> p = Person('jack',19)>>> p.name'jack'>>> p.age19
(2)__doc__ 是函数属性,双下划线表示其为特殊属性,会在特殊情况下被Python调用,用以添加解释文档。
>>> def add(a,b): 'add a and b,caculate their sum' print a+b>>> add.__doc__'add a and b,caculate their sum'
(3)__init__ 是构造函数,当一个对象被创建后,会立即调用构造函数,而不用再实例化后调用其中方法。构造函数的参数可选,但至少包含一个self。当输入self以外的参数时,会作为默认参数使用。
>>> class Ft: def init(self): self.somevar = 42>>> ft = Ft()>>> ft.somevarTraceback (most recent call last): File "<pyshell#54>", line 1, in <module> ft.somevarAttributeError: Ft instance has no attribute 'somevar'>>> ft.init()>>> ft.somevar42>>> class FtBar: def __init__(self): self.somevar = 42>>> ftb = FtBar()>>> ftb.somevar42
(4)__name__ 变量用于检查程序入口。模块用于定义函数、类和其他的一些内容,但是在首次导入模块时,模块会执行其中的函数,为了保证模块在导入时仅仅是以模块名显示,在调用时才会执行,可以在程序中“告知”模块是作为程序执行还是被导入到其他程序,因此,需要使用__name__ 变量。在“主程序”中,变量__name__ 的值是__main__ 。
def hello(): print 'hello world'def test(): hello()if __name__ == '__main__': test()
运行结果:
>>> import name_test>>> name_test.hello()hello world
参考文献:Python基础教程[第2版]
0 0
- self、__doc__、__init__、__name__
- python __init__.py __name__ __doc__ __file__ argv[0] 浅析
- python中的__doc__,__name__
- Python语言中的__name__和__doc__
- python的 __name__和__doc__属性
- python self __init__
- __doc__
- __doc__
- self和__init__的含义 + 为何要有self和__init__
- 【Python】self, __init__(未完)
- Python Class self __init__笔记
- super(LastUpdateOrderDict, self).__init__()是什么意思?
- __init__(self),self,super,继承杂谈
- Python进阶---self和__init__的含义
- python 继承中的self和__init__
- python学习[1]_python中的__name__属性和__doc__属性使用示
- python中self、_init_和__name__
- [python]Python中:self和__init__的含义,以及为何要有self和__init__
- C#常用控件介绍
- 2017阿里巴巴实习在线编程测验Java
- 穷举法,课件来自老师,实例1,百钱百鸡问题
- php中ceil来计算分页总页数
- 【Nginx 配置】简单配置
- self、__doc__、__init__、__name__
- Linux下的源码包编译和安装原理
- 初学JSP(JSP基础)
- 利用Python数据分析:数据规整化(四)
- 算法-蛇形数组
- ListView嵌套GridView数据适配
- 迷宫问题的非递归实现
- mac下环境变量加载顺序
- threejs坐标转换