目录:

1、不一样的列表

2、改变type中的规则,创建类:类属性大写

3、%s字串格式化,不用元组用字典

4、没有参数抛出异常

5、字符串签名加f 格式化字符串

6、attr库

7、python的十大装B操作


1、不一样的列表

list1 = ["a", "b", "c"]
self, *args = list1
print(self)
print(args)

输出:

a
['b', 'c']

  

2、改变type中的规则,创建类:类属性大写

class UpperAttrMetaClass(type):
def __new__(cls, class_name, class_parents, class_attrs):
# 遍历属性字典,把不是__开头的属性名字变为大写
newAttr = {}
for k, v in class_attrs.items():
if not k.startswith("__"):
newAttr[k.upper()] = v # 方法1:通过‘type’来创建类对象
# return type(class_name, class_parents, newAttr) # 方法2:复用type.__new__方法创建类对象
# return type.__new__(cls, class_name, class_parents, newAttr) # 方法3:使用super方法创建类对象
return super(UpperAttrMetaClass, cls).__new__(cls, class_name, class_parents, newAttr) # python3的用法
class Foo(object, metaclass=UpperAttrMetaClass):
bar = "bip" # 判断Foo类中是否有某个属性
print(hasattr(Foo, 'bar'))
print(hasattr(Foo, "BAR")) f = Foo()
print(f.BAR)

输出:

False
True
bip

  

3、%s字串格式化,不用元组用字典

str= """
第一个:%(delim)s
第二个:%(id)s
"""
str_new = str % {'delim': "$", 'id': 9}
print(str_new)

输出:

第一个:$
第二个:9

  

4、没有参数抛出异常

def func1(*args, **kwargs):
if not args: # 无参数报错
raise TypeError("descriptor 'format' of 'Formatter' object needs an argument")
else:
n_args = len(args)
pattern = " ".join("%s," for x in range(n_args))
# print(pattern)
return "I am func1, my args is: " + pattern % args if __name__ == '__main__':
# 有参数正常
res1 = func1("a1", "a2", "a3")
print(res1) # 无参数报错
res2 = func1()
print(res2)

  

输出:

I am func1, my args is: a1, a2, a3,

Traceback (most recent call last):
File "D:/aaa-py/tmp/my00-tool.py", line 17, in <module>
res2 = func1()
File "D:/aaa-py/tmp/my00-tool.py", line 3, in func1
raise TypeError("descriptor 'format' of 'Formatter' object needs an argument")
TypeError: descriptor 'format' of 'Formatter' object needs an argument

  

5、字符串签名加f 格式化字符串

例子:

https://blog.csdn.net/sunxb10/article/details/81036693

 

6、attr库

https://www.attrs.org/en/latest/glossary.html 

7、python的十大装B操作

https://blog.csdn.net/xufive/article/details/102856921

  

你没见过的python语法的更多相关文章

  1. 初试Python语法小试牛刀之冒泡排序

    Python很火,心里很慌,没吃过猪肉,也要见见猪走路. 看了几天Python的语法,大概初步了解了一点点,https://www.liaoxuefeng.com/wiki/0014316089557 ...

  2. python语法入门之流程控制

    python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...

  3. 深入理解python(一)python语法总结:基础知识和对python中对象的理解

    用python也用了两年了,趁这次疫情想好好整理下. 大概想法是先对python一些知识点进行总结,之后就是根据python内核源码来对python的实现方式进行学习,不会阅读整个源码,,,但是应该会 ...

  4. 4、Python语法之变量

    一 引入 我们学习Python语言是为了控制计算机.让计算机能够像人一样去工作,所以在Python这门语言中,所有语法存在的意义都是为了让计算机具备人的某一项技能,这句话是我们理解后续所有Python ...

  5. python语法元素的名称

    变量 什么是变量? """ 变量是保存和表示数据值的一种语法元素,在程序中十分常见.顾名思义,变量的值是可以改变的,能够通过赋值(使用等号"=")方式 ...

  6. python语法:注释

    Python语法:注释  python语言中的注释是来帮助程序员理解并读懂代码内容的文字.当然,注释不仅在python语言中是这个作用,在其他语言中也几乎一样. python注释的生成方式  所有演示 ...

  7. Python基础部分:5、 python语法之变量与常量

    目录 python语法之变量与常量 一.什么是变量与常量 1.什么是变量 2.什么是常量 二.变量的基本使用 1.代码中如何记录事物状态 2.变量使用的语法结构与底层原理 3.变量名的命名规范 4.变 ...

  8. 对 Python 语法不够了解导致的 bug

    对 Python 语法不够了解导致的 bug. `in` '20' in '11264,6144,4096,3072,2048,1024,300,30' Out[7]: True a_list = ' ...

  9. python 笔记2:python语法基础

    python语法学习笔记: 1 输入输出 input(),print(). name = input('input your name : ')print('hello ,'+name)print(& ...

随机推荐

  1. HBase学习系列

    转自:http://www.aboutyun.com/thread-8391-1-1.html 问题导读: 1.hbase是什么? 2.hbase原理是什么? 3.hbase使用中会遇到什么问题? 4 ...

  2. 第二百六十五节,xss脚本攻击介绍

    xss脚本攻击介绍 Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常 ...

  3. 学习:erlang读取文件中的terms

    参考:http://diaocow.iteye.com/blog/1766128 1. file:consult(Filename) -> {ok, Terms} | {error, Reaso ...

  4. jquery ajax生成Select

    function DropDownList(url, domId, defaultValue) {    /// <summary>    /// ajax生成select    /// ...

  5. 九度OJ 上剑指 offer 习题目录

    <剑指Offer>面试题集收录汇总 面试题1 赋值运算符函数 不适合在线模式 面试题2 实现Singleton模式 不适合在线模式 面试题3 二维数组中的查找 已收录 面试题4 替换空格 ...

  6. iOS 设置字体 自定义字体

    博文转载至 http://blog.csdn.net/trandy/article/details/8364517 1.网上搜索字体文件(后缀名为.ttf,或.odf) 2.把字体库导入到工程的res ...

  7. java基础---->string字面量的使用

    这里简单的理解一下java中关于string字面量的知识,关于字节码可以使用java自带的javap工具查看. string字面量 一.直接贴出测试的代码 A string literal alway ...

  8. asp 中创建日志打印文件夹

    string FilePath = HttpRuntime.BinDirectory.ToString(); string FileName = FilePath + "日志" + ...

  9. 从0到1实现SourceTree连接Gitlab

    见下面的链接 http://note.youdao.com/noteshare?id=3622d02a38464c524222ede1b4fb06d2 SourceTree下载地址:Windows V ...

  10. 160405、quartz持久化所需表结构

    delete from qrtz_fired_triggers;   delete from qrtz_simple_triggers;   delete from qrtz_simprop_trig ...