首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Day 2-Python7天挑战-面向对象专题

Hi,我正在参加麦叔的Python7天挑战,每天学习3个问题!有老师答疑!完成任务有电子书奖励,还可以抽红包!

今天是第2天!一起来呀,就7天!

参加方法:关注麦叔编程公众号,回复“7天”入群即可。

每日3题每天包括初级,中级,高级难度题目各一道。

每7天一个专题,每天晚上9点麦叔在线答疑。

每天朋友圈分享,7天后可以获得专题电子书:知识清单和挑战总结。

还可以参与抽奖,真金白银的红包发给你。

[Easy] 函数和面向对象编程的异同

思考30秒再往下翻...

相同点:都是把程序进行封装、方便重复利用,提高效率。

不同点:函数重点是用于整体调用,一般用于一段不可更改的程序。仅仅是解决代码重用性的问题。而面向对象除了代码重用性。还包括继承、多态等。使用上更加灵活。

[Normal] Python类中的@classmethod、@staticmethod装饰方法

思考30秒再往下翻...

@classmethod 类方法,至少传入一个cls(代指类本身,类似self)参数。我们不用通过实例化类就能访问的方法。而且@classmethod 装饰的方法不能使用实例属性,只能是类属性。它主要使用在和类进行交互,但不和其实例进行交互的函数方法上。@staticmethod 用来修饰类的静态方法。使用在有些与类相关函数,但不使用该类或该类的实例。如更改环境变量、修改其他类的属性等。两者最明显的区别,classmethod 必须使用类的对象作为第一个参数,而staticmethod则可以不传递任何参数

[Hard] 面向对象中怎么实现限制属性只读?

思考30秒再往下翻...

如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问

将对象私有化,通过共有方法提供一个读取数据的接口

或者使用@property:

支持麦叔,请点在看,谢谢!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201201A035NO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券