当前位置: 首页 > news >正文

门户网站开发方案口碑营销的模式

门户网站开发方案,口碑营销的模式,dedecms导入网站,建应用网站C中的this指针和Python中的Self 1. python中的Self2. C中的this指针3. C中的this指针和Python中self的异同点: 以朋友的新岁祝福开篇,祝笔者也祝大家☺️: 一岁一礼 一寸欢喜且喜且乐 且以永日​ From VardoZ癸卯年十一月廿六(兔年)之…

C++中的this指针和Python中的Self

    • 1. python中的Self
    • 2. C++中的this指针
    • 3. C++中的this指针和Python中self的异同点:

以朋友的新岁祝福开篇,祝笔者也祝大家☺️:

  一岁一礼   一寸欢喜且喜且乐   且以永日​				From VardoZ癸卯年十一月廿六(兔年)

之前一直对 C++ 中的 this 和 python 中的 self 到底是什么关系,为什么 C++ 要显式的写出来,python 则不需要? 模糊不清,趁着周末整理一下相关结论,希望本篇文章可以解答这些问题,同时对C++和Python中的类加深些理解。

1. python中的Self

python 当对象调用类中的函数的时候,系统会自动把当前对象传入函数作为函数的第一个参数self(当前对象 = self),不过可以用其他 token 代替 self。因此在定义的时候,需要声明 self 这个形参,调用时,却不需要手动传入对象(系统会自动传入)。

class A:def test(x):print(x)# x 接收 12 这个参数
A.test(12)
a = A()
# x 接收 a 这个对象
a.test()class A:def test(mine, x):print(x)# mine 接收 1,x 接收 12
A.test(1, 12)
a = A()
# mine 接收 a,x 接收 12
a.test(12)

2. C++中的this指针

在C++中,每一个对象都能通过this指针来访问自己的地址。this指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象(this->变量)。

具体来说,当我们调用一个类的非静态成员函数时(静态成员函数没有this指针),编译器会自动隐式的将类的对象地址作为参数传递给这个成员函数。在成员函数体内部,这个对象地址就是this指针所指向的地址,这样就能通过this指针来访问对象本身及其成员。

总结一下,this指针有以下特点:

  1. this指针在非静态成员函数内部使用,用来指向调用对象。
  2. this指针只能在成员函数内部使用,而不能在全局函数或者静态函数中使用。
  3. this指针是一个常量指针,它的值是在成员函数调用时被自动设置的,你不能改变this指针的值, this指针指向对象的内存地址,每个对象的this指针都是独一无二的。

3. C++中的this指针和Python中self的异同点:

在很多方面,C++中的this指针和Python中的self参数是类似的。它们都是类实例方法的隐含参数,都可以用来访问实例的属性和方法。但是,还是有一些关键的 区别

  1. 语法:在C++中,this是一个隐含的指针,不需要在成员函数的参数列表中显式声明。在Python中,self是显式的,需要在每个实例方法的参数列表中声明。

  2. 可选性:在C++中,你可以选择不使用this指针,直接访问实例的属性和方法。但在Python中,必须使用self参数来访问实例的属性和方法。

  3. 可修改性:在C++中,this是一个const指针,你不能修改this指针的值。但在Python中,self是一个普通的变量,你可以修改self的值,虽然这通常不是一个好主意。

  4. 静态方法:在C++的静态方法中,没有this指针。但在Python的静态方法中,依然可以有self参数,尽管在调用静态方法时,不需要为self参数提供值。

  5. 用法:在C++中,this是一个指针,所以访问实例的属性和方法时,需要使用箭头运算符(->)。而在Python中,self是一个对象引用,所以访问实例的属性和方法时,使用点运算符(.)。

C++中this指针不可省略的情形:

  1. 当局部变量的名称和成员变量的名称相同时,必须使用this指针来区分。例如:
class MyClass {
private:int x;
public:void setX(int x) {this->x = x;  // 这里的this->x是成员变量,x是局部变量}
};
  1. 当在类的成员函数中需要返回对象本身的引用,可以使用*this来返回。例如:
class MyClass {
private:int x;
public:MyClass& setX(int x) {this->x = x;  return *this;  // 返回对象本身的引用}
};
  1. 实现链式调用时,需要使用this指针。例如:
class MyClass {
private:int x, y;
public:MyClass& setX(int x) {this->x = x;return *this;  // 返回对象本身的引用,实现链式调用}MyClass& setY(int y) {this->y = y;return *this;  // 返回对象本身的引用,实现链式调用}
};// 使用示例
MyClass obj;
obj.setX(10).setY(20);
http://www.hengruixuexiao.com/news/19896.html

相关文章:

  • 北京网站建设华网天下科技百度号码认证申诉平台
  • 秦皇岛疫情最新消息今天封城了谷歌广告优化师
  • html做网站实战教程seo标签优化
  • 建设网站的申请信用卡吗自己搜20条优化措施
  • 韶关做网站公司网络推广的概念
  • 电子商务旅游网站建设策划书带佣金的旅游推广平台有哪些
  • 专业网站建设定制百度收录网站要多久
  • 政府门户网站建设报道凡科网站建设
  • 重庆疫情最新通告湖南专业seo公司
  • 照明公司网站制作电脑突然多了windows优化大师
  • java网站留言板怎么做seo流量排名软件
  • 吉利的网络营销方式深圳百度seo整站
  • 建设银行茂名网站seo英文全称
  • 电梯行业网站怎么做关键词优化价格表
  • 梅林做网站正规网络教育培训机构
  • 高端网站设计企业网站建设广州公司关键词网络推广
  • python 网站建设青岛网站建设策划
  • 做网站源码百度手机软件应用中心
  • 深圳网站建设哪家公司好关键词数据
  • 辽源网站建设百度账户安全中心
  • 株洲网站建设 英铭郑州网络营销
  • 谷歌网站建设代理营销存在的问题及改进
  • 建设部举报网站高级搜索技巧
  • 如何制作公司宣传片seo需要付费吗
  • 怎么做网站的导航无锡seo
  • 免费素材视频网站哪个最好联赛积分榜排名
  • 商城网站开发需要哪些人员河源市企业网站seo价格
  • 网站建设与管理 吴振峰成都私人网站制作
  • 网站开发者 敬请期待广州高端网站建设公司
  • 凡客优品官方网站对网站提出的优化建议