Python高级语法-私有属性-魔法属性(4.7.2)

目录

  • 1.说明
  • 2.代码
  • 关于作者

@

1.说明

常用的一些魔法方法如下
所谓魔法方法,就是调用的时候
不好好正常调用

2.代码


class Test:
    """
    我是___doc____
    """
    class_index = 0
    def __init__(self,index):
        self.index = index
        print("index")

    def __call__(self, *args, **kwargs):
        print("我亦可以call了")

    def __str__(self):
        return "dadadadada"

    def __getitem__(self, item):
        print(item)

    def __setitem__(self, key, value):
        print(key,value)

    def __delitem__(self, key):
        print(key)

    def __getslice__(self,i,j):
        print(i,j)

    def __setslice__(self, i, j, sequence):
        print(i,j,sequence)

    def __delslice__(self, i, j):
        print(i,j)

#init
a = Test(1)
#doc
print(a.__doc__)
#class
print(a.__class__)
#module
print(a.__module__)
#__call
a()
#dicr  类
print(Test.__dict__)
#dict 对象
print(a.__dict__)
#str
print(a)
#item 字典
a["111"]
a["111"] = 1121312
del a["111"]
#slice 切片
a[0:2]
a[0:3] = ["1","2","3"]
del a[0:3]

关于作者

个人博客网站
个人GitHub地址
个人公众号:

原文地址:https://www.cnblogs.com/simon-idea/p/11412180.html

时间: 2024-11-08 01:16:54

Python高级语法-私有属性-魔法属性(4.7.2)的相关文章

Python高级语法-私有属性-with上下文管理器(4.7.3)

目录 1.说明 2.代码 关于作者 @ 1.说明 上下文管理器 这里使用with open操作文件,让文件对象实现了自动释放资源.我们也能自定义上下文管理器,通过__enter__()和__exit__()这两个魔术方法来自定义的操作文件 当有上下文使用的场景的时候,如打开一个东西要关闭,像等文件等资源,就可以使用这种方式去定义一个上下文管理器 2.代码 class File(): def __init__(self,filename,mode): self.filename = filenam

Python高级语法-对象实例对象属性-类与实例,class方法静态方法等(4.6.1)

目录 1.说明 2.代码 关于作者 @ 1.说明 python中属性:类属性,实例属性 方法:类方法,实例方法,静态方法 想修改类属性,只能是类方法,因为只有类方法把cls(类)传入数据里面 静态方法也就是个普通的方法,为了方便而已 实例方法,不能通过类来直接调用,要调用也可以self = 对象名 具体下面 2.代码 class Provice(object): #类属性 country = "china" def __init__(self,name): #实例属性 self.nam

python 高级语法

1 #coding:utf-8 2 3 #定义一个装饰器函数 4 def doc_func(func): 5 6 #包裹函数(闭包) 7 def warpfunc(): 8 #做一些额外的事情 9 print "%s called" %(func.__name__) 10 func() 11 12 return warpfunc 13 14 @doc_func 15 def foo(): 16 print "hello" 17 18 @doc_func 19 def

Python高级语法-import导入-sys.path(4.4.1)

目录 1.说明 2.代码 关于作者 @ 1.说明 在开发程序的过程中,往往使用sys.path去验证下导入的目录,返回的是列表 先后顺序,就是扫描的先后顺序 ,也可以加入搜索路径 import有个特点防止重复导入 import是把包拷贝一份放在内存中,所以当代码改变的时候,程序运行不会变 重新导入也不会变,需要重新导入的使用imp的reload模块 还有 from 模块 导入 属性 属性 = .. 此时模块内的属性不会更改,只是复制了一份,如果是可变数据类型,那么使用append之类的话会更改

Python高级语法示例 񙍞

原文: http://blog.gqylpy.com/gqy/412 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

Python高级语法-多继承MRO相关-多继承顺序(4.5.1)

目录 1.说明 2.代码 关于作者 @ 1.说明 使用类的魔法方法__mro__ 可以查看他的父类调用顺序 还有调用父类的构造方法的时候,使用super调用,里面有C3算法支持,不会重复调用相同的祖先类 2.代码 class Parent(object): def __init__(self,name,*args,**kwargs): print("Parent的init开始调用") self.name = name print("Parent的init结束调用")

网络编程-Python高级语法-闭包

什么叫闭包?通俗来说就是函数里嵌套函数,从表现形式来看,内部函数引用外部函数的作用域里的变量,那么内部函数就称为闭包 举例说明: 1.闭包=函数块+定义函数时的环境,inner就是函数块,x就是环境 def outer(x): def innner(y): return x+y return innner a = outer(1) # 调用outer函数返回内部函数inner返回的的函数变量 print(a(2)) # 通过函数变量传参并运行内部函数,然后返回函数结果运行结果:3 2.闭包不可以

Python高级语法-深浅拷贝-总结(4.2.1)

目录 1.说明 2.代码 关于作者 @ 1.说明 任何可变数据类型都牵扯到深浅拷贝 但是元组,常数等,不可变数据类型,无论浅拷贝,深拷贝都是指向 不管如何嵌套,一旦牵扯到可变数据类型,都会有深浅区别 特别注意,元组切片为浅拷贝,反正可变数据类型没使用deepcopy一律浅拷贝 浅拷贝: 一个变量名等于另一个东西就一定是指向,浅拷贝是拷贝顶层的->copy.copy() 深拷贝: 是全部都拷贝copy.deepcopy 2.代码 # a = 1 # b = a # print(id(a),id(b

Python高级语法-多继承MRO相关-args和kwargs(4.5.2)

目录 1.说明 2.代码 关于作者 @ 1.说明 args数据类型为元组 kwargs数据类型为字典 一般传入方法中使用遍历去得到值 这个传入参数的顺序没有特殊的要求 当你自定义的参数传完以后,写了名字的就给kwargs,没有名字的给args 2.代码 def test(*args,**kwargs): for i in args: print(i) for i in kwargs: print(kwargs[i]) if __name__ == '__main__': test(1,2,3,3