matlab中circle函数_模型技术 PCSWMM中Python脚本入门基础知识2:函数、类

↑点击上方“PCSWMM”关注我们

Hi 朋友们,

今天我们学习PCSWMM中Python脚本相关的Python编程语言的基础知识——函数、类。

4.函数

 函数是完成任务的代码块,使用关键字def定义。1.选择脚本中的代码并删除它们(通过按退格键或del键)。 2.在代码编辑器中键入第1-3行,如下所示。定义一个函数,名为hello_world.

4ced926365805e084476c138caefda9b.png

1a6eff25997e5ccfdc69cddb154cfa89.png

第1行是由首字母#表示的注释行。注释不执行,只是为代码行提供描述。 第2行定义了一个名为hello_world的函数。该函数没有输入参数,因此在两个括号之间是空的。 行尾的冒号(:)启动缩进语句集。冒号也用于if、while、for和class语句的末尾。 第3行打印文本“Helloworld!”到输出窗口。注意,这一行有两个前面的空格作为缩进。在Python中,行缩进用于定义范围的开始和结束。相同作用域的行必须具有相同的缩进。这与使用一对花括号定义范围的其他编程语言(如C/c++、Java)不同。 单击“运行脚本”按钮或F6键运行脚本。 您可能会注意到输出窗口没有打印任何内容。这是因为我们只是定义了函数hello_world,而没有执行它在显式调用之前,函数不会执行。现在我们来执行这个函数。 3.如下所示键入第4行,执行函数hello_world。 

4ced926365805e084476c138caefda9b.png

6302c4820af7093bfbb853105d44d5a9.png

第4行调用函数hello_world。你现在应该看到“Helloworld!”(没有单引号)打印到输出窗口。 即使函数名后面没有参数,也必须包含这对括号。否则,Python不理解它是一个变量名还是一个实际的函数调用。 

6cc13201d602d3122e6b4d776f891dc7.png

现在我们将更新函数以接受一个参数。 4.更新第2-4行如下所示,将一个参数传递给函数。

4ced926365805e084476c138caefda9b.png

ed955d02a3603591598160ccc858b594.png

在第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.运行脚本,并观察将打印到输出窗口的内容。 

5.类

 类是任何面向对象编程(OOP)语言(如Python、c++、Java)的基本数据结构。它定义属性和方法,并作为创建类对象的依据。 ★ 在PCSWMMPython脚本中,我们主要使用两种类型的类:
  • PCSWMMdefined.为了支持Python脚本,PCSWMM定义了90多个类来处理模型和背景数据(例如获取或设置管道的曼宁n和雨量计参数).

  • 用户自定义。用户可以定义Python类来承载数据和函数来完成任务。例如,您可以定义一个类来从Transects.txt文件中读取横断面线数据,并将数据转换为SWMM对象。

接下来,我们将定义一个Python类Circle并创建一个类对象。 如下键入第1-2行,定义一个python类并使用它。

4ced926365805e084476c138caefda9b.png

818764c16c92fe6a25cd18e055f60b0e.png

第1行是注释行。 第2行定义了一个名为Circle的类。注意,这一行没有任何前面的空格。 第3行定义了类构造函数,当调用该类来创建Circle对象时使用该类构造函数。任何Python类构造函数都是一个名为_init__的函数(init前后有两个下划线)。由于它是类Circle中的一个新范围或属于类Circle,所以我们将在def之前添加两个空格。 __init__有两个输入参数可以用来调用:
  • self。它表示类本身,通过它可以使用所有其他类属性和方法。它必须是任何类方法的第一个参数。您也可以以不同的方式重命名它,例如this(在c++中使用)。但是,Python程序员通常使用self这个名称。

  • r.这是用户从该类创建一个circle对象时传递的一个圆的半径。您还可以将其命名为与任何其他有效变量名不同的名称。

第4行将输入参数radius(r)存储到一个名为radius的类属性中。然后,该属性可以在类中的构造函数_init__之外的其他地方使用(例如,第6行中的get_area方法)。 第5行是空行。添加它是为了增加代码的可读性。出于同样的目的,您也可以添加注释行。 第6行定义了一个类函数get_area来计算半径为self.raduis的圆的面积。注意,它位于类的范围内,与方法_init__(第3行)相同,所以这一行也有两个前面的空格。注意,类对象self包含在第一个参数中。这个函数没有额外的参数。 第7行使用公式pi*(r*r)计算圆的面积,并将计算结果赋给一个可变的面积。 第8行返回计算的区域。 第9行是空行。 第10行创建一个类Circle对象。半径1.0用作输入参数r(第3行)值。 注意,虽然类方法必须包含self作为它的第一个参数,但是在方法调用中不需要它。 第11行调用get_area方法来执行第7-8行来计算面积,并将结果分配给一个变量area。您可能已经注意到第7行还定义了一个变量area。函数中定义的变量只存在于函数作用域中,一旦函数执行完成,函数中定义的所有变量都将被Python删除,因此可以在以后重用。 第12行将area值打印到Output窗口。 c73d067eea6e6e7829f973f7e7a1b660.png 17af984cf4ff86804afb82d115980082.gif 下文预告:《PCSWMM中Python脚本入门基础知识3:If else语句、For循环、IronPython库》 3f5bbade49abdba217622e7fe5be81f6.png PCSWMM最新版本试用和购买咨询请联系 龙网科技 LONWIN 邮箱:pcswmmgroup@126.com(回复快) 电话:(022)24102119转8837(工作日) 备注:对我们公司感兴趣的小伙伴可访问网址www.lonwin.cn,承接各类项目。项目做的好,业内闻名,历史悠久。 温度骤降,请大家注意保暖!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值