1.4 Python脚本文件
到目前为止,我们看到的都是基于 Python 解释器的例子。Python 解释器能够以对话模式执行程序,非常便于进行简单的实验。但是,想进行一连串的处理时,因为每次都需要输入程序,所以不太方便。这时,可以将 Python 程序保存为文件,然后(集中地)运行这个文件。下面,我们来看一个 Python 脚本文件的例子。
1.4.1 保存为文件
打开文本编辑器,新建一个 hungry.py
的文件。hungry.py
只包含下面一行语句。
print("I'm hungry!")
接着,打开终端(Windows 中的命令行窗口),移至 hungry.py
所在的位置。然后,将 hungry.py
文件名作为参数,运行 python
命令。这里假设 hungry.py
在~/deep-learning-from-scratch/ch01
目录下(在本书提供的源代码中,hungry.py
文件位于 ch01
目录下)。
$ cd ~/deep-learning-from-scratch/ch01 # 移动目录 $ python hungry.py I'm hungry!
这样,使用 python hungry.py
命令就可以执行这个 Python 程序了。
1.4.2 类
前面我们了解了 int
和 str
等数据类型(通过 type()
函数可以查看对象的类型)。这些数据类型是“内置”的数据类型,是 Python 中一开始就有的数据类型。现在,我们来定义新的类。如果用户自己定义类的话,就可以自己创建数据类型。此外,也可以定义原创的方法(类的函数)和属性。
Python 中使用 class
关键字来定义类,类要遵循下述格式(模板)。
class 类名:
def __init__(self, 参数, …): # 构造函数
...
def 方法名1(self, 参数, …): # 方法1
...
def 方法名2(self, 参数, …): # 方法2
...
这里有一个特殊的 init
方法,这是进行初始化的方法,也称为构造函数(constructor),只在生成类的实例时被调用一次。此外,在方法的第一个参数中明确地写入表示自身(自身的实例)的 self
是 Python 的一个特点(学过其他编程语言的人可能会觉得这种写 self
的方式有一点奇怪)。
下面我们通过一个简单的例子来创建一个类。这里将下面的程序保存为 man.py
。
class Man:
def __init__(self, name):
self.name = name
print("Initialized!")
def hello(self):
print("Hello " + self.name + "!")
def goodbye(self):
print("Good-bye " + self.name + "!")
m = Man("David")
m.hello()
m.goodbye()
从终端运行 man.py
。
$ python man.py Initialized! Hello David! Good-bye David!
这里我们定义了一个新类 Man
。上面的例子中,类 Man
生成了实例(对象)m
。
类 Man
的构造函数(初始化方法)会接收参数 name
,然后用这个参数初始化实例变量 self.name
。实例变量是存储在各个实例中的变量。Python 中可以像 self.name
这样,通过在 self
后面添加属性名来生成或访问实例变量。