staticmethod的用途和cls()函数的含义

staticmethod的用途和cls()函数的含义

问题1:

将函数设置为静态方法就只能访问到类的数据属性,不能获取实例的数据属性,和普通函数无异。

我这么理解不知道对不对,“规范化”,“工整”,把这个功能相关的函数都汇总到一起,更容易去管理,更规范一些,和类没有多大关系

问题2:

视频中所说cls(name),大概明白这个的用意,就相当于实例化类

类名(给构造传递的参数)

但是老师说的一笔带过,我想在百度在进入了解一下,可是百度没搜索到cls()全是cls,请问cls()这个函数叫什么,用什么关键字搜索


这节讲的太绕了,老师说的不是很清晰,看得我一愣一愣的,靠百度在学明白,希望可以重新录一下,对0基础编程学习非常不友好。

第一段老师讲的就很不错

这节虽然视频没怎么看明白,但是百度研究会后才看懂老师的讲课思路,这和课程难易程度没关系


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好:

  1. 将函数设置为静态方法确实和普通函数没有太大区别,只是静态方法必须通过类调用而不能通过实例对象调用。因为从本质上来讲@staticmethod只是一个装饰器,是为类或函数添加额外的功能和方法的,并没有深入的改变这个函数。如果我们有一个类中的函数用来存放逻辑性的代码,不会涉及到类中的方法和属性的操作,我们就可以将这个函数定义为静态方法,这样可以节省静态资源,而且便于使用和维护。

  2. return cls(name)就等于cat = Cat(name)       return cat,如下图:

    http://img1.sycdn.imooc.com//climg/5e8c442d09ec5a4207140158.jpg

    其中cls只是类方法中的一个参数,指代当前类,不一定非叫cls这个名字,可以改成别的参数名,默认类方法中第一个参数指代当前类,如下图,所以在百度中搜索cls()搜索不出来。这个就是用类名(参数)实例化类,如果想深入学习可以搜索python类方法。

    http://img1.sycdn.imooc.com//climg/5e8c45a6097e48ff03880448.jpg

  3. 这节课的内容不难,就是有些抽象,理解起来不太容易,同学有什么不懂的可以在提问区进行提问。

如果解决了你的疑惑,请采纳,祝学习愉快~ 


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师