初学python,记录一些基本的东西吧

1、self

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。Python中的self等价于C++中的self指针和Java、C#中的this。

假如你有一个类称为MyClass和这个类的一个实例MyObject。当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)——这就是self的原理了。

这也意味着如果你有一个不需要参数的方法,你还是得给这个方法定义一个self参数。


python 模块中的__init__文件用法 python包中的init___name__

声明add()方法时,若不加self,则提示

TypeError: add() takes exactly 2 arguments (3 given)
 File "D:\PythonWorkplace\PythonDemo\Tet.py", line 15, in <module>  test.add(1,3) 错误。


2、_init_

首先来看init单词本身,其含义是 初始化。而__init__的含义,也如同其单词本意一样,用来初始化。当一个Class,稍微复杂一点的时候,或者内部函数需要用得到的时候,往往都需要在,别人实例化你这个类之前,使用你这个类之前,做一些基本的,与自己的类有关的,初始化方面的工作。而这部分工作,往往就放到__init__函数中去了。

3、__name__

当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用.

        模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。

在cmd 中直接运行.py文件,则__name__的值是'__main__';

而在import 一个.py文件后,__name__的值就不是'__main__'了;

从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件

如:

#Test.py
 class Test:
     def __init(self):pass
     def f(self):print 'Hello, World!'
 if __name__ == '__main__':
     Test().f()
 #End

你在cmd中输入:

C:>python Test.py

Hello, World!

说明:"__name__ == '__main__'"是成立的

 

你再在cmd中输入:

C:>python
 >>>import Test
 >>>Test.__name__                #Test模块的__name__
 'Test'
 >>>__name__                       #当前程序的__name__
 '__main__'
 无论怎样,Test.py中的"__name__ == '__main__'"都不会成立的!

所以,下一行代码永远不会运行到!