python高级编程(魔法函数)


什么是魔法函数

以双下划线开头,以双下划线结尾。

class studen:
    def __init__(self,studentname):
        self.studentname = studentname

    def __getitem__(self, item):
        return self.studentname[item]

my_Student = studen(['se10rc','Cloud1','test'])

for s  in my_Student:
    print(s)

上述代码直接调用getitem这个魔法函数,遍历输出。
魔法方法由python定义好,自己不能去创建,它不属于任何东西。

魔法函数一览

非数学类运算


字符串表示

1.repr(self):(开发模式下的字符串格式化)
2.str(self):(正常模式下的字符串格式化)

class studen:
    def __init__(self,studentname):
        self.studentname = studentname

    def __str__(self):
        return ','.join(self.studentname)

my_Student = studen(['se10rc','Cloud1','test'])

print(my_Student)

>>> se10rc,Cloud1,test

还有很多,之后遇到了在讲。。。

web安全方向ssti模版注入中常用

bases
以元组返回一个类直接所继承的类
mro
以元组返回继承关系链
class
返回对象所属的类
globals
以dict返回函数所在模块命名空间中的所有变量
subclasses()
以列表返回类的子类
builtin
内建函数,python中可以直接运行一些函数,例如int(),list()等等,这些函数可以在builtins中可以查到。查看的方法是dir(builtins)
ps:在py3中builtin被换成了builtin
builtinbuiltins之间是什么关系呢?
在主模块main中,builtins是对内建模块builtin本身的引用,即builtins完全等价于builtin,二者完全是一个东西,不分彼此。
非主模块main中,builtins仅是对builtin.dict的引用,而非builtin本身

写在最后

今天的效率有点高,但是常见魔法函数还有很多没不知道他的用法,自己也不是主要走开发方向,大致了解就行了到时候不会在面向google编程吧,就这样,拜拜!👋。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 内置函数Python解释器内置了许多功能和类型,总是可用的。他们是按字母顺序列在这里。 abs(x)返回一个数的绝...
    uangianlap阅读 1,272评论 0 0
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,943评论 0 8
  • pypy支持的扩展模块(对应Python/Modules/中的模块) pypy支持的内建模块:__builtin_...
    JianMing阅读 4,870评论 0 0
  • # Python关键字 部分单词没有分类整理按照顺序整理的 ``` statements语句 print输出 qu...
    ZhouLang阅读 610评论 0 0
  • https://leetcode-cn.com/problems/edit-distance/descriptio...
    点点渔火阅读 217评论 0 1