分享

Python类编程中几个知识点

 网摘文苑 2022-12-29 发布于新疆

带你走进 @ 机器人时代

Discover 点击上面蓝色文字关注我们

Python类编程中几个知识点


Python
类编程中,我们经常会碰到需要调用类的实例,一般来说有两种方法,一种是通过类对象调用,另一种是通过类名调用。

通常情况下,我们希望用类对象来调用实例方法,但是要注意的是,通过类名直接调用实例方法时,Python 并不会自动给 self 参数传值。

如果想通过类名直接调用实例方法,就必须手动为 self 参数传值。我们来看看下面的代码:

#定义一个类class CL: def info(self): print('这是一个类方法')#通过类名直接调用实例方法d=CL()CL.info(d)运行结果:这是一个类方法

我们也可以修改代码,直接传递任意的参数:

#定义一个类class CL:    def info(self):        print(self,'这是一个类方法')#通过类名直接调用实例方法CL.info('哦,')运行结果:哦, 这是一个类方法

我们在学习类编程的时候,不止一次提到过命名空间。实际上,在所有的class关键字修饰的代码块中,都可以看成独立的空间。

在这个独立的空间里面,所有的属性和方法都是独立的。所有的属性都是在这个空间里面的变量,所有的方法都是这个空间的函数。

不过,在程序中我们应该如何调用它们呢?我们来看看一个实例:

a='这是一个全局变量'def say(): print('这是一个全局函数的方法')class st: def say1(): print('这是一个类空间里面的函数方法') b='这是一个类空间的变量'print(a)say()print(st.b)st.say1()运行结果:这是一个全局变量这是一个全局函数的方法这是一个类空间的变量这是一个类空间里面的函数方法


我们类命名空间中的变量和函数在使用时,只需要标注 st(类名) 前缀即可。甚至,Python还允许在类命名空间里直接运行可执行程序:

class gun:    print('这是运行在类的程序')    [print(i) for i in range(1,10)]    运行结果:这是运行在类的程序123456789


通过使用描述符,可以让程序员在引用一个对象属性时自定义要完成的工作。一个类可以将属性管理全权委托给描述符类。

如果一个类的某个属性有数据描述符,那么每次查找这个属性时,都会调用描述符的 __get__() 方法,并返回它的值;同样,每次在对该属性赋值时,也会调用 __set__() 方法。我们可以看看下面的例子:

class Ace: def __init__(self, i = None, name = '描述符的数据'): self.v = i self.name = name def __get__(self, a, c): print('这是get查找的',self.name) return self.v def __set__(self, s, b): print('他是',self.name) self.v = bm = Ace(5,'输入新的变量')print(m.name)class myClass: x = Ace(10,'调用类输入的变量')n=myClass()print(n.x)输出结果:输入新的变量这是get查找的 调用类输入的变量10


是不是很烧脑,我们可以在后面的学习中慢慢深入理解。

继续坚持学习,每天都能进步一点!!!

往期回顾:

  • 来来来,送你一个金牌销售机器人,7X24小时不休,不要工资免费用!
  • 不要嫌你现在的工作很累,可能你离失业不远了!
  • 作为旅游行业的一个小老板,我受够了!这是要被淘汰的节奏吗?

本文引用和摘录相关内容,请联系侵删。

- END -

最后,文章有帮助到你的话点赞在看
励我们分享更多的干货

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多