一些关于Python Class和C++ 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()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2017-11-18 NOIP2017滚粗记【下】
2017-11-18 NOIP2017滚粗记【上】