首页 > 编程语言 >一些关于Python Class和C++ Class 的不同点

一些关于Python Class和C++ Class 的不同点

时间:2022-11-18 00:22:23浏览次数:45  
标签:name Python self C++ init print Class

写在前面

本文将对Python Class的用法进行讲解,且重点将体现Python Class 与C++ Class不同的地方。

类的定义

和C++类似,Python采用了Class xxx的定义方式,不过首字母需要大写(采用大驼峰命名法命名)

class PeopleBase:
    print("test")
    gender = ""

    def __init__(self, name, no):
        self.name = name
        self.no = no

    def print(self):
        self.out = "already out"
        print("name = ", self.name)
        print("no = ", self.no)

与c++相比,它有一些不同的地方

构造函数

在c++中,构造函数的样式为 \(ClassName(argv1,argv2)\)

但在Python中,构造函数的形态为\(\_\_init\_\_(self, argv1, argv2……)\)

对于一个类,只能有一个init,且init中的第一个参数必须为self

变量定义

在c++中,变量定义需要在class中进行,不可以在成员函数中进行

但是在python中,既可以直接定义(如上文的gender),也可以在函数中定义(如init中,或者是print中),甚至还可以在执行的过程中,直接进行定义

创建实例对象

由于Python的变量类型是基于所赋的值的类型

因此我们要先定义出一个类型为ClassName的类型,再进行赋值

比如下面的代码

a = PeopleBase("Alice", 123)

访问属性

和c++一样的访问逻辑

不过,我们可以通过访问属性,给类添加属性

a = PeopleBase("Alice", 123)
a.age = 12
a.print()
print(a.age)

类的继承

和c++一样,Python Class支持类继承

类继承的语法是这样的:

class Student(PeopleBase):
    grade = ""

    def __init__(self, grade, name, no):
        self.grade = grade
        super(Student, self).__init__(name, no)

    def print(self):
        print("grade = ", self.grade)
        super(Student,self).print()

其中,定义语句为

class Student(PeopleBase):

PeopleBase为基类,Student为派生类

在派生类中调用其基类的方法为super(BaseClassName,self).func()

标签:name,Python,self,C++,init,print,Class
From: https://www.cnblogs.com/alphainf/p/16901883.html

相关文章

  • Python绘图之纪念碑谷
    初学python时,在海龟绘图看到一幅纪念碑谷的作品,顿时来了兴趣,于是自己画了画,模仿出了类似的效果。turtle官方文档importturtleastdefdrawlight(x,y):t.penup()......
  • Python爬虫之旅游景点评论
    目录爬取景点评论准备工作获取HTML页面解析处理worldcloudreference:爬取携程景点评论数据本博客记录一个爬取携程景点评论并制作词云的例子,并且可以很轻易地拓展到多个......
  • Python Pickle 与 JSON
    1.PythonPickle和JSON之间的区别很全面很棒的解释。2.一篇使用说明:https://janakiev.com/blog/python-pickle-json/3.mmdetection3d中的说明https://githu......
  • 排序算法Python
    冒泡排序defbubbleSort(nums):iflen(nums)<=1:returnnumsforiinrange(len(nums)-1):forjinrange(len(nums)-i-1):......
  • C++20实践入门 第6版 电子书 pdf
    关注公众号,回复【电子书】即可:  ......
  • C++20高级编程 第五版 电子书 pdf
    原作名:ProfessionalC++,FifthEdition 关注公众号,回复【电子书】即可: ......
  • windows--cmake与c++的使用教程(10)
    1概述本文基于前文环境本节目标:复用cmake脚本文件2编写复用脚本2.1前言多个项目之间,很多cmake设置大相径庭。比如修改输出路径、编写适用与自己的宏或者函数......
  • python基础语法知识
    1、多组输入没有结束标志的两种表示形式#method1:try:whileTrue:#代码exceptEOFError:pass #method2:whileTrue:try:#代码......
  • python-单例-笔记
    目标单例设计模式​​__new__​​ 方法Python中的单例01.单例设计模式设计模式设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题......
  • python-异常-笔记
    目标异常的概念捕获异常异常的传递抛出异常01.异常的概念程序在运行时,如果 ​​Python解释器​​ 遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是 异常......