1.4 Python脚本文件

优质
小牛编辑
114浏览
2023-12-01

到目前为止,我们看到的都是基于 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 后面添加属性名来生成或访问实例变量。