Python 中的 self 更好。理由如下:Python的类不能直接使用,只有通过创建(对象)才能发挥它的功能,每个实例(对象)都是独一无二的,它可以调用类的方法、。类就像灵魂附体一样,让实例(对象)有了自己(self)的功能。
Python 中的 self 更好
Python的类不能直接使用,只有通过创建(对象)才能发挥它的功能,每个实例(对象)都是独一无二的,它可以调用类的方法、。类就像灵魂附体一样,让实例(对象)有了自己(self)的功能。
self的原理
创建一个类Test(),实例化该类t=Test()得到t这个对象,调用这个对象的方法t.fun(x,y),调用过程中,python会自动转为Test.fun(t,x,y)
两者区别
Python,当实例对象调用函数(函数其实都是属于类空间的)的时候,系统会自动将对象本身传入 函数在定义时的第一个变量一般是self。(但self并不是关键字,用其他名字也可以)定义时,这个self必须写出来,而调用时,不用你自己将实例对象传入。
C++,当实例对象调用函数时,系统也会将实例对象传入函数,不同是不管是定义还是调用,存储对象的这个 参数都是隐藏的,传递过程也是自动且不可见的。只有在函数内部才可以显性的使用它——this,而且this是一个关键字。
也就是说C++类里定义的函数默认都是给实例用的,除非加上static关键字!此时才是给类用的。(不过实例也可以调用静态函数,但是类无法调用非静态函数)。
而python并没有强制说哪个函数是给类用的,哪些函数是给实例对象用的,他只是规定,如果是类调用函数,那么就是普通的调用,如果是对象调用函数,系统就会自动把实例对象传给时的第一个参数。
延伸阅读:
什么是C++?
C++(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生,最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。
C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。 C++几乎可以创建任何类型的程序:游戏、设备驱动程序、HPC、云、桌面、嵌入式和移动应用等。 甚至用于其他编程语言的库和编译器也使用C++编写。
C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
文章标题:Python的self和C++like语言的this,哪种设计更好,发布者:小编,转载请注明出处:https://worktile.com/kb/p/39257