首页 > 编程语言 >Python和C++之间

Python和C++之间

时间:2023-12-11 16:24:38浏览次数:38  
标签:函数 Python C++ python 之间 父类 super

编程语言

编程语言创造来都是为了解决实际问题的
 了解一门第二,甚至第三语言。因为只有你了解了不同工具的特性,以及它们擅长解决的问题,
你才能更高效地在日常工作中运用它们。为问题选择正确的语言/工具/解决方案,将能大大减少解决问题所需的工作量
训练你习惯跳出一种语言或范式的框架来思考问题
  不同的编程语言,它们有着不同的语法和编程思想 虽然有一些相似之处,但它们侧重点不同
(层次-阶段-种类)-面对的问题,依据的历史  

函数式编程语言

LISP     是列表处理语言(全名:List Processor   
Haskell  是Haskell 有着严格的类型系统和强大的类型推导功能
Scala    是一种混合式编程语言,它将函数式编程和面向对象编程结合在了一起
Scheme   是一种 Lisp 方言,它是函数式编程语言的一种经典代表
Clojure  是一种 Lisp 方言,它将函数式编程和面向对象编程结合在了一起

面向过程编程

C 
Fortran	

面向对象

C++ 
Java

计算机不同语言

 花很多时间在比较二者不同。浮潜--深潜
     任意一个都缺乏了解的前提下,是很浪费时间的一件事。
 C++属于代码级语言,语言风格应用广泛,非常适用算法理论、计算思维理论的学习。 但是C++太庞大,涉及了太多规则,入门可能感觉蒙。
 C++ Low Level 意味着他离机器更近,你写的代码需要思考机器本身的问题,
 而不是像一些python关心业务逻辑对于平台和系统层面的东西交给系统即可
  C++可以为开发者提供更深入的编程理解和更广泛的应用领域

Hello-world

// hello.cpp
#include <iostream>
using namespace std;
int main()
{
    cout << "Hello World!";
    return 0;
}	

## compile: g++ hello.cpp
## ./a.out
1.数据类型: C++ 是一个强类型语言 一个变量的类型必须在使用之前进行声明
           C++ 中,变量是一个有名字的内存地址。声明一个变量就是给一个内存地址起一个名字,并将变量类型与这个内存地址关联起
		    在 C++ 中,表达式 y = x 表示的是将 x 的值复制到那个名字为 y 的内存地址上
2.表达式 
     运算-- 运算方向 运算结合律 运算优先级 
3.语句
   结构化语句-控制语句
	遍历
    for (int x = 0; x < 5; x++)
      cout << x;
   函数的使用:
       传值-传址 传引用	   
4.常用的功能
 文件输入与输出: C++ 中,我们必须先导入文件流库,声明对象,显式地打开文件,显式地检查我们是否到了文件末尾:
 异常处理
5.类 C++特有的类、模板
   指针只是一个持有内存地址的变量	
   C++中的指针、多态
  C++要求开发者手动管理内存,这可能会增加一定的复杂性和风险。但正是这种底层的控制能力使得C++成为开发高性能和资源敏感的应用的理想选择
   熟悉计算机底层原理--程序运行机制方面
6.C++ 初始化 
   初始化列表--> 构造函数初始化  --> 声明时初始化-(就地初始化)	
      等号= 和 {} 花括号
	构造函数除了有名字、形参列表和函数体外,还可以有初始化列表  

Python

name = "Python"
print("Hello, {}".format(name))	

##Python 中表达式 y = x 表示的是 x 和 y 指向同一个对象(即同一个对象的两个名字)
Python的自动内存管理机制(垃圾回收)使得开发者无需过多关注内存管理细节,更专注于问题的解决


 ###Python 初始化
  python类中初始化形式:以下定义函数时属性赋值是否允许为空和实例化时是否直接传入参数
  def __init__(self):
      pass
  def __init__(self, 参数1,参数2,,,参数n):
      pass
  ## 实例化时,直接传入参数	  

python中也支持多态,但是是有限的的支持多态性,
  主要是因为python中变量的使用不用声明,所以不存在父类引用指向子类对象的多态体现,
   同时python不支持重载
python这里的多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数	
super 是一个 特殊的类 super() 就是使用 super 类创建出来的对象 最常 使用的场景就是在 重写父类方法时,调用 在父类中封装的方法实现	
      super(Dog, self).greet()  #调用父类Animal的greet方法  在子类中调用父类的初始化方法了
	  super(A, self).__init__(a, b) super 其实和父类没有实质性的关联 super(cls, inst) 获得的是 cls 在 inst 的 MRO 列表中的下一个类。
	 定义的每一个类,Python 会计算出一个方法解析顺序(Method Resolution Order, MRO)列表,它代表了类继承的顺序 

C++编译器

 在默认情况下(用户没有定义,但是也没有显式的删除),编译器会自动的隐式生成一个拷贝构造函数和赋值运算符 
   默认生成的拷贝构造函数和赋值运算符,只是简单的进行值的复制
     深拷贝和浅拷贝主要是针对类中的指针和动态分配的空间来说
   拷贝构造函数是在对象被创建是调用的,而赋值函数只能在已经存在了的对象调用

参考

    https://blue.cs.sonoma.edu/~tiawatts/UsefulStuff/C++ForPythonProgrammers.pdf
   给 Python 程序员的 C++ 简易入门指南 https://blog.csdn.net/u010099080/article/details/109961775
    https://cloud.tencent.com/developer/article/1751906
	为什么 Python 程序员有必要学习一下 C++? https://oicebot.github.io/2019/05/22/why-python-programmer-should-learn-cpp.html

标签:函数,Python,C++,python,之间,父类,super
From: https://www.cnblogs.com/ytwang/p/17894693.html

相关文章

  • C++学习笔记六:运算符(五种基本运算操作,优先级和结合性)
    这一章对操作符进行简单的总结:1.五种基本运算类型:加减乘除,取余add,substract,multiply,divide,modulusintnumber1{2};intnumber2{7};intresult=number1+number2;result=number2-number1;result=number1-number2;result=number1*number2;result=......
  • Python函数
    【一】函数的定义和使用函数可以提高代码可读性方便维护函数的使用必须遵循’先定义,后调用’的原则。函数的定义就相当于事先将函数体代码保存起来,然后将内存地址赋值给函数名,函数名就是对这段代码的引用,这和变量的定义是相似的。没有事先定义函数而直接调用,就相当于......
  • 使用Python合并多个Excel文件
    合并Excel可以将多个文件中的数据合并到一个文件中,这样可以帮助我们更好地汇总和管理数据。日常工作中,合并Excel主要有以下两种需求:将多个Excel文件合并为一个文件将多个Excel工作表合并为一个工作表这篇文章将介绍如何使用第三方Python库Spire.XLSforPython实现以上两种......
  • 扫描并清除重复文件的Python脚本
    电脑里存的照片越来越多,其中有很多是重复的。如果依赖人边去一张一张对比,需要的工作量太大了。下面的Python脚本在一个目录树上递归地对所有文件作MD5校验,将重复的文件找出来。保留用户指定的文件,将多余的文件全部删除掉。#!/usr/bin/envpython3importsysimporthashlibim......
  • C++ Qt开发:PushButton按钮组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QPushButton按钮组件的常用方法及灵活运用。QPushButton是Qt框架中用于创建按钮的组件类,是QW......
  • node调用python输出中文乱码问题
    问题描述使用node的children_process模块调用python脚本文件,出现输出信息为乱码问题//node脚本const{spawn}=require('child_process');constpythonProcess=spawn('python',['./test.python']);pythonProcess.stdout.on('data',(data)=>{......
  • Python_数据结构的应用heap
    数据结构栈-->stack队列-->queue树-->tree堆-->heap散列-->hash图-->graph图结构一般包括顶点和边邻接矩阵DAG,DirectedAcyclicGraph即「有向无环图」树树(Tree)是一种非线性的数据结构,由n个节点组成,其中每个节点都有零个或多个子节点。......
  • python数据类型元组、列表、集合、字典相互嵌套
    系统Windows10专业工作站版22H2软件python-3.9.6-amd64.exe拓展库:jupyter==1.0.0notebook==7.0.61.元组嵌套1.1元组嵌套元组try:tuple0=((1,2,3),(1,2,3),(1,2,3))print(tuple0,type(tuple0))except:print('error')((1,2,3),(1,2,3),(1,2,......
  • C++U4-第08课-队列
    队列:顺序队列 队列基本操作 选择题1 选择题2 程序阅读题     打疫苗 【算法分析】用数组实现队列,按题意模拟即可。【参考代码】#include<iostream>usingnamespacestd;stringq[1010];intf,r;//f前端,指向队头,r后端,指向队尾的后......
  • map(python中的字典)
    //创建一个空的map,键是字符串类型,值是整数类型myMap:=make(map[string]int)//创建有值的map//初始化并赋值myMap:=map[string]int{"apple":1,"banana":2,"orange":3,}//添加修改元素myMap["grape"]=4//添加元素myMa......