Hi 朋友们,
今天我们学习PCSWMM中Python脚本相关的Python编程语言的基础知识——函数、类。
4.函数
★ 函数是完成任务的代码块,使用关键字def定义。 ★ 1.选择脚本中的代码并删除它们(通过按退格键或del键)。 2.在代码编辑器中键入第1-3行,如下所示。定义一个函数,名为hello_world. 第1行是由首字母#表示的注释行。注释不执行,只是为代码行提供描述。 第2行定义了一个名为hello_world的函数。该函数没有输入参数,因此在两个括号之间是空的。 行尾的冒号(:)启动缩进语句集。冒号也用于if、while、for和class语句的末尾。 第3行打印文本“Helloworld!”到输出窗口。注意,这一行有两个前面的空格作为缩进。在Python中,行缩进用于定义范围的开始和结束。相同作用域的行必须具有相同的缩进。这与使用一对花括号定义范围的其他编程语言(如C/c++、Java)不同。 单击“运行脚本”按钮或F6键运行脚本。 您可能会注意到输出窗口没有打印任何内容。这是因为我们只是定义了函数hello_world,而没有执行它在显式调用之前,函数不会执行。现在我们来执行这个函数。 3.如下所示键入第4行,执行函数hello_world。 第4行调用函数hello_world。你现在应该看到“Helloworld!”(没有单引号)打印到输出窗口。 即使函数名后面没有参数,也必须包含这对括号。否则,Python不理解它是一个变量名还是一个实际的函数调用。 现在我们将更新函数以接受一个参数。 4.更新第2-4行如下所示,将一个参数传递给函数。 在第2行,将一个名为text的参数传递给函数。 第3行定义了“Hello”和文本的字符串连接,并将结果打印到Output窗口。 在第4行,一个字符串“PCSWMMpython”被传递到函数中。 脚本运行时,将从第1行开始逐行运行,步骤如下:走到第1行,Python认识到这是一个注释行,所以跳过它以便执行
走到第2行,Python识别一个定义了hello_world的函数。虽然没有执行函数,但将检查Python语法。如果遇到任何问题(例如括号后缺少冒号),错误消息将以两种形式抛出:弹出对话框和消息在输出窗口中的echo;脚本运行将停止
走到第3行,Python认识到这是函数定义的一部分,第1行中有冒号,这一行前面有两个空格。与第1行相同,将检查Python语法
走到第4行,Python认识到这不再是函数定义的一部分,没有前面的空格。文本参数值将被指定为字符串“PCSWMMpython”
再次来到第2行,参数文本现在有一个值'PCSWMMpython'
再来到第3行。由“Hello”和“PCSWMMpython”(即'HelloPCSWMMpython')将被创建并打印到输出窗口。
5.类
★ 类是任何面向对象编程(OOP)语言(如Python、c++、Java)的基本数据结构。它定义属性和方法,并作为创建类对象的依据。 ★ 在PCSWMMPython脚本中,我们主要使用两种类型的类:PCSWMMdefined.为了支持Python脚本,PCSWMM定义了90多个类来处理模型和背景数据(例如获取或设置管道的曼宁n和雨量计参数).
用户自定义。用户可以定义Python类来承载数据和函数来完成任务。例如,您可以定义一个类来从Transects.txt文件中读取横断面线数据,并将数据转换为SWMM对象。
self。它表示类本身,通过它可以使用所有其他类属性和方法。它必须是任何类方法的第一个参数。您也可以以不同的方式重命名它,例如this(在c++中使用)。但是,Python程序员通常使用self这个名称。
r.这是用户从该类创建一个circle对象时传递的一个圆的半径。您还可以将其命名为与任何其他有效变量名不同的名称。