首页
学习
活动
专区
圈层
工具
发布

Python 元类

那么再来思考一下,到底什么是元类 元类就是用来创建类的“东西”。你创建类就是为了创建类的实例对象,不是吗?但是我们已经学习到了Python中的类也是对象。...type就是Python在背后用来创建所有类的元类。现在你想知道那为什么type会全部采用小写形式而不是Type呢?...Python中所有的东西,注意,我是指所有的东西——都是对象。这包括整数、字符串、函数以及类。它们全部都是对象,而且它们都是从一个类创建而来,这个类就是type。...因此,元类就是创建类这种对象的东西。type就是Python的内建元类,当然了,你也可以创建自己的元类。...那些实际用到元类的人都非常清楚地知道他们需要做什么,而且根本不需要解释为什么要用元类。” —— Python界的领袖 Tim Peters

2.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python 元类

    印象中,是在创建单例模式时知道可以用到元类(metaclass),但始终对其了解的不是很透彻,很多人也都说元类是Python中较难理解的概念之一,于是找来几本书,希望可以找到答案,本文以Python3为例...本文参考: 《人人都懂设计模式》 《Python Cookbook》 《 流畅的Python》 先来简单介绍下:元类(metaclass)是一个类,你也可以理解为类的类,因为Python中的类是在运行时动态创建的...,那么通过元类便可以控制类属性和类实例的创建过程。...因为,在Python中,type是默认的metaclass(内建元类),Python允许我们自定义metaclass,自定义的metaclass必须继承自type,也就是:元类从type类继承了构建类的能力...__class__ Out[14]: type 当你使用class关键字时,Python在幕后做的事情,就是通过元类来实现的。 为什么重新定义__call__方法?

    1.2K10

    Python - 字符串

    字符串认识 字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。...- 转义符 在字符前加 \ 就行 常见的有 \n:换行 \t:缩进 \r:回车  小知识:\ 只想当普通字符处理 print(r"D:\python\python.txt") #...输出结果 D:\python\python.txt 字符串-运算符 格式化参考此文:https://www.cnblogs.com/lvcm/p/8859225.html 字符串-运算:下标和切片...获取字符串中某个字符 字符串是一个序列,所以可以通过下标来获取某个字符 # 获取字符串某个字符str = "hello world"print(str[0]) print(str[1]) print(...Python 中,可以直接通过切片的方式取一段字符 切片的语法格式 str[start : end : step] 获取列表 列表 中在 [start, end) 范围的子字符串 start:

    83220

    字符串 | Python

    索引和切片 字符串实际上就是字符的数组,所以也可以用下标进行索引和切片。 索引 索引:选取其中一个元素。 切片 切片:选取其中一片元素。...str[起点(包含起点元素) : 终点(不包含终点元素) : 步长(默认为1)] 默认步长切片 指定步长切片 逆序输出 写法一: 写法二: 字符串常用方法 find( ) rfind...( ) index( ) str.index() # 功能及操作和find一样,只是在找不到字符串的时候会抛出异常 count( ) replace( ) 注意:并不会改变原来的字符串,字符串是不可变类型...endswith( ) # 判断字符串是否以某个字符作为开头或者结尾,并返回判断值 str.startswith() str.endswith() lower( ) upper() # 将字符串转化为大写或小写字母...isalpha( ) isdigit( ) isalnum( ) isspace( ) join( ) eval( ) eval(str) # 能把转换成字符串的,再转换成原来的类型 ?

    1K20

    Python字符串

    默认去除右侧空格,传递参数则去除指定字符 str.index() 字符 查找字符在字符串位置 str.upper() 将字符串转换成大写 str.lower() 将字符串转换成小写 str[::-1...] 反转字符串 str.split() 分隔符 分割字符串,返回一个列表 str.join() 列表 将列表元素用str连接 str.swapcase() 将字符串中大小写互换 str.capitalize...() 将字符串首字母大写 str.replace() 旧字符串,新字符串,[替换次数] 将字符串当中旧字符串替换成新字符串 str.center(width [, char]) 宽度,字符串 将字符串填充到长度为...maketrans) max(str) 字符串 返回字符串中最大的字母 min(str) 字符串 返回字符串中最小的字母 str.title() 将字符串所有单子首字母大写 str.splitlines...(num=str.count(‘\n’)) 长度 按照行分割,返回列表 str.partition(string) 字符串 按照字符串把str分割成3元的元组

    1.1K60

    Python字符串

    Python转义字符 Python字符串运算符 Python三引号 Python 的字符串内建函数 Python转义字符 在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表: ?...其中\n和\t最为常用,然后就是脱义引号和脱义反斜杠 Python字符串运算符 下表实例变量a值为字符串 “Hello”,b变量值为 “Python”: ?...Python字符串格式化 Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。...Python三引号 python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符,代码示例: para_str = """这是一个多行字符串的实例 多行字符串可以使用制表符 TAB...Python 的字符串内建函数 Python 的字符串常用内建函数如下: 序号 方法及描述 1 capitalize() 将字符串的第一个字符转换为大写 2 center(width, fillchar

    1.4K20

    Python字符串

    : 字符串转大写upper(); 字符串转小写lower(); 字符串大小写互换swapcase(); 字符串第一个字母大写capitalize(); 字符串内的所有单词的首字母大写title() str01...四、判断两个字符串是否相等 判断两个字符串是否相等我们通常有两个办法:等号和is; ==:判断字符串是否相等 is:判断两个字符串是否是同一个对象 总结:==表示两个字符串内容是否相等;is判断两个字符串是否是同一个对象...查找字符串的两种主要方法 查找字符串在Python中主要使用两个函数find和index (1)字符串查找函数:find() str01 = "www.yusheng123.cn" print(str01...分割字符串的操作和我们上面拼接字符串的操作刚好相反,把一个大字符串分割成多个小字符串。...: %s 标准输出 %10 右对齐,占位符10位 %-10s 左对齐,占位符10位 %.2s 截取两位字符串 %10.2s 10位占位符,截取两位字符串 好啦,关于Python字符串的基础知识就分享到这里

    1.3K11

    python截取指定字符串_python字符串截取,python字符串切片的方法详解

    参考链接: Python字符串| max 字符串本质上就是由多个字符组成的,Python 允许通过索引来操作字符,比如获取指定索引处的字符,获取指定字符在字符串中的位置等。...Python 字符串直接在方括号([])中使用索引即可获取对应的字符,其基本语法格式为:string[index] 这里的 string 表示要截取的字符串,index 表示索引值。...此外,Python 也允许从后面开始计算索引,最后一个字符的索引为 -1,倒数第二个字符的索引为 -2,依此类推。...除可获取单个字符之外,Python 也可以在方括号中使用范围来获取字符串的中间“一段”(被称为子串),其基本语法格式为:string[start : end : step] 此格式中,各参数的含义如下:...例如如下代码:# 输出s字符串中最大的字符 print(max(s)) # z # 输出s字符串中最大的字符 print(min(s)) # 空格 python的字符串截取案例str = ‘0123456789

    4.3K11

    python字符串

    python字符串是一种元素为字符的序列类型。因为序列类型是元素被顺序放置的一种数据结构,因此可以通过索引来获取某一个字符,或者指定索引范围来获取一组字符。...报错提示:'str' object does not support item assignment 字符串的分片,就是从给定的字符串分离出部分字符串,可以采用以下形式索引 i,j,k i是起始位置,...,还有字符串处理函数。...字符串是不可变的,任何字符串改变字符串后,都会返回一个新的字符串,python字符串string可以看成一个类。...byte对象 在Python中,byte和字符串不同,由一系列不可改变的unicode字符组成的序列叫字符串。由一系列不可改变编码介于0--255之间的字符串组成的序列称为byte对象。

    1K90

    Python 字符串

    本文内容:Python 字符串 更多内容请见 Python 变量 Python 表达式与运算符 Python bool类型与逻辑关系运算 ---- Python 字符串 1.基本概念 2.转义字符...在 Python 中,字符串是用两个双引号" "或者单引号' '括起来的一个或多个字符。当字符串较长时,也会用三引号''' '''编写多行字符串。...print(hi) ---- 2.转义字符 当字符串内容中包含引号时,Python 会错误理解字符串的包含范围。 a = 'What's your name?'...Python 中有更便捷的方法让字符串中的转义字符失效,即在字符串前加r: print(r'C:\Users\Public\.') ---- 3.字符串索引 字符串是一个字符序列:字符串最左端位置标记为...字符串中的编号叫做索引。Python 中的编号是双向的,也可以将最右边记为-1,往左边依此递减。 可以通过索引访问字符串具体的位置: hi = 'Hello World!'

    92120

    【Python】字符串

    在Python当中可以用两种形式表示定义一个字符串如下代码所示↓ name1 = "zhangsan" # (双引号的形式) print(name1) name2 = 'laowang' # (单引号的形式...但是,由于大多数的编程语言都是用""(双引号)来表示字符串的。所以,我们可以使用双引号的形式来表示一串字符串。当然这不是绝对的,指代Python的情况下。...索引 用索引获取指定位置字符串,代码示例如下↓ str1 = "Hello Python" print(str1[6]) 运行结果 P 从上面当中我们可以发现用索引操作并且打印我们获取到了字符串当中的P...代码示例如下↓ str1 = "Hello Python" print(str1.index("P")) 运行结果 6 那么如果使用index传递的子字符串不存在,程序会报错的。...("666","niubang")) 运行结果 原本打印的是: Python 666 现在打印的是: Python niubang 大小写转换。

    58510
    领券