返回顶部
首页 > 资讯 > 后端开发 > Python >[原创][连载]nim与python的
  • 307
分享到

[原创][连载]nim与python的

nimpython 2023-01-31 08:01:10 307人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

名词:方法与函数同义.仅仅是语言规定差异.在本文中不做区别. 1. python都是指def定义的处理过程 2. nim的 proc有返回值, func没有返回值(0.19版之后出现) 3. c++的[方法(method)]专指类中的函

名词:方法与函数同义.仅仅是语言规定差异.在本文中不做区别.
1. python都是指def定义的处理过程
2. nim的 proc有返回值, func没有返回值(0.19版之后出现)
3. c++的[方法(method)]专指类中的函数.
4. pascal的方法(procedure)指无返回值的处理,函数(function)指有返回值的处理
5. c中的方法(function)指无返回值的处理,函数(function)指有返回值的处理

主模块的判断

  if __name__ == “__main__”:
    pass
  • nim
  if isMainModule:
    discard

空代码-为保持缩进的占位符

  • python
    pass
  • nim
    discard

缩进:

  • python用4个空格
  • nim用2个空格

文字串的格式化常用形式:

  • python:
  1. print “hello, %s!”%(“ world”) #python2
    print(“hello, %s!”%(“ world”)) #python3
    print(“hello, {}!”.fORMat(“ world”)) #python3
  2. print("hello, {0}! your name is {1}.".format(" world","rock")) #python3
  • nim也有类似用法:
  1. echo(“hello, $1!” % “ world”)
    或者不加括号也可以
    echo “hello, $1!” % “ world”
  2. echo "Hello, $2! your name is $1." % ["rock","world"] #输出顺序变化了
nim里文字串的操作符%不是默认操作符,需要在使用前引入strutils包.否则不能使用,在编译时会报错.
import strutils
这样就会给为文字串增加很多功能, 比如上面的%操作符

方法调用:

  • python是传统的[对象.方法]调用写法
  • nim 既可以用传统OOP风格的[对象.方法],也可以用[方法(对象)/方法 对象]调用,这被称为UFCS(Uniform Function Call Syntax-通用方法调用语法).后一种风格类似C或pascal等命令/指令编程语言,两者效力与结果相同, 比较灵活.
UFCS
  1. 要求方法(proc)或函数(func)的第一个参数是要操作的类型.

    proc len2(value:string):int =
        处理过程省略
    let a = “” #a的类型自动推导. 等同于 let a:string = ""
    len2(a) == a.len2 #nim可以不写函数调用的括号
  2. 类的方法(proc/func/method)要求第一个参数是类的类型.
  • python

    class Person:
        def makelove(self, spouse)→Person: # python3写法
            省略
    person = Person()
    baby = person.makelove(spouse)
  • nim

    type
        Person = object
    
    proc makelove(self:Person, spouse:Spouse):Person =
        省略
    person = Person()
    baby = person.makelove(spouse)
    #或者
    baby = makelove(person)

模块导入

  • python
  1. import os

    os.exists(“./testfile”)
  2. from os import *

    导入该模块下的所有内容
    exists(“.testfile”) # 这里使用os模块内的函数[exists]不需要加上模块名前缀
  3. import JSON as jn #将模块引入后起个别名使用
  4. from os import path
  5. from os import path as syspath
  • nim
  1. from os import nil #等同于python的[import os].这里不导入模块内的内容,而只是将模块本身导入.

    os.existsFile(“./testfile”)

    如果不加上[import nil]那么默认是导入该模块下的所有内容,而不需要在调用之前加上模块名

  2. import os

    import os # 这里导入os模块
    existsFile(“.testfile”) # 这里直接使用os模块内的函数[existsFile].
    等同于python的[from os import *]
  3. import parseutils as pu import nil #将模块引入后起个别名使用
  4. from os import existsFile
  5. from os import existsFile as exfile

--结束END--

本文标题: [原创][连载]nim与python的

本文链接: https://lsjlt.com/news/193386.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • [原创][连载]nim与python的
    名词:方法与函数同义.仅仅是语言规定差异.在本文中不做区别. 1. python都是指def定义的处理过程 2. nim的 proc有返回值, func没有返回值(0.19版之后出现) 3. c++的[方法(method)]专指类中的函...
    99+
    2023-01-31
    nim python
  • PHP自动加载的原理与实践
    自动加载器的类型 PHP自动加载器主要有两种类型:SPL自动加载器和PSR-4自动加载器。 SPL自动加载器 SPL自动加载器是PHP标准库中提供的自动加载器,它可以使用spl_autoload_register()函数注册到PHP...
    99+
    2024-02-08
    PHP 自动加载 自动加载器 Composer PSR-4
  • python-文件的创建与写入
    1.利用内置函数获取文件对象 功能: 生成文件对象,进行创建,读写操作 用法: open(path,mode) 参数说明∶ path:文件路径mode :操作模式 返回值: 文件对象 ...
    99+
    2023-09-02
    python 开发语言
  • vue.js父子组件传参的原理与实现方法 原创
    在Vue中,父子组件之间的数据传递常常会使用props进行实现。具体原理是,当一个父组件嵌套了一个子组件时,在子组件内部使用props接收从父组件传递过来的数据,这些数据可以是基础类...
    99+
    2023-05-17
    vue.js 父子组件 传参
  • vue.js模版插值的原理与实现方法简析 原创
    原理 Vue.js 模板插值的原理是利用了 JavaScript 的模板字符串,采用了数据绑定的方式将数据与视图进行关联,在渲染过程中动态生成 HTML 内容。 具体实现方法 1. ...
    99+
    2023-05-17
    vue.js 模版插值
  • 《数字图像处理-OpenCV/Python》连载(4)图像的读取与保存
    《数字图像处理-OpenCV/Python》连载(4)图像的读取与保存 本书京东优惠购书链接:https://item.jd.com/14098452.html 本书CSDN独家连载专栏:https...
    99+
    2023-09-17
    opencv python 计算机视觉 图像处理 原力计划
  • Mysql表连接的误区与原理详析
    目录前言连接过程简介内连接与外连接where 与 on总结前言 搞后端的肯定要经常接触到数据库,搞数据库一个避免不了的地方就是 join, join的语法很简单,但是在使用时常常陷入一下两种...
    99+
    2024-04-02
  • C#创建Windows服务与服务的安装、卸载
    Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且...
    99+
    2024-04-02
  • C++函数重载的定义与原因详解
    目录引例函数重载的定义函数重载规则为什么C不支持函数重载而C++可以内部名称总结引例 如果要求你只能通过print函数,即能打印字符串,又能打印一个整型。 虽然在C语言中我们可以通过...
    99+
    2024-04-02
  • koa框架的原理、功能,与基本使用方法概述 原创
    概述 Koa 是一个基于 Node.js 平台的 Web 开发框架,它的核心理念是中间件(middleware),通过一系列功能强大的中间件实现对 HTTP 请求的处理和响应,并让开...
    99+
    2023-05-17
    koa 框架 node.js
  • 《MySQL高级篇》六、索引的创建与设计原则
    文章目录 1. 索引的声明与使用1.1 索引的分类1.2 创建索引1、创建表的时候创建索引2、在已经存在的表上创建索引 1.3 删除索引 2. MySQL 8.0 索引新特性2.1 ...
    99+
    2023-09-01
    MySQL
  • C#如何创建Windows服务与服务的安装、卸载
    这篇文章主要介绍C#如何创建Windows服务与服务的安装、卸载,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行...
    99+
    2023-06-29
  • PHP 与 Ajax:创建动态加载内容的解决方案
    ajax(异步 javascript 和 xml)允许在不重新加载页面情况下添加动态内容。使用 php 和 ajax,您可以动态加载产品列表:html 创建一个带有容器元素的页面,aja...
    99+
    2024-05-11
    php ajax mysql 点击事件
  • 揭秘Golang热更新原理:动态加载与重载的内幕讲解
    Golang热更新原理探究:动态加载与重载的奥秘 引言:在软件开发领域,程序员们经常希望能够在不重启应用的情况下进行代码修改和更新。这样的需求对于开发效率和系统运行的可靠性都具有重要意义。而Golang作为一...
    99+
    2024-01-20
    Golang 动态加载 热更新
  • Python自定义模块的创建与使用
    目录一、前言二、模块的概述三、自定义模块1.创建模块2.使用import语句导入模块3.使用from…import语句导入模块附:python打包用户自定义模块总结一、...
    99+
    2024-04-02
  • 链表的创建与基本操作(Python版)
    #/usr/bin/python #-*- coding: utf-8 -*- #Function: simulate the link-list in python #__author__: Tresser # class ...
    99+
    2023-01-31
    链表 操作 Python
  • Nginx负载均衡中的fair算法原理与实现
    在分布式系统中,负载均衡是非常重要的一环。Nginx作为一款高性能的Web服务器和反向代理服务器,具备了负载均衡的功能。Nginx提供了多种负载均衡算法,其中fair算法是一种比较常用的算法。fair算法的原理fair算法是基于权重的负载均...
    99+
    2023-10-21
    nginx 负载均衡 fair算法
  • LVS实现负载均衡的原理与实践是怎样的
    LVS实现负载均衡的原理与实践是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。负载均衡的原理这是1998年一个普通的上午。一上班,老板就把张大胖叫进了办公...
    99+
    2023-06-04
  • docker创建centos容器并下载MySQL进行本地连接的方法
    本篇内容介绍了“docker创建centos容器并下载MySQL进行本地连接的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、拉取镜像...
    99+
    2023-06-29
  • python如何实现信号与槽的断开与连接
    这篇文章主要介绍了python如何实现信号与槽的断开与连接,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。信号与槽的断开与连接有时候基于某些原...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作