Python疑难解答笔记

目录

  1. 格式化输出list, dict等数据结构
  2. 实例方法与类方法
  3. UnicodeEncodeError: ‘ascii’ codec can’t encode

格式化输出list, dict等数据结构

使用pprint模块


实例方法,类方法与静态方法

一些属性方法属于类本身,另一些则属于由类创建的对象。

实例方法:

第一个参数为self的方法是实例方法。调用时Python将对象传递给方法。

特征:

  • 第一个参数为self

通过

实例.方法名()

类名.方法名(实例)

的形式调用

类方法:

类方法影响类整体,任何对于类方法的改动将影响由其创建的所有对象。

特征:

  • 具有@classmethod修饰器
  • 第一个参数为cls

这样定义的类方法可以通过

类名.方法名()

的形式调用,也可以通过

实例.方法名()

的形式调用,不能通过

类名.方法名(实例)

的形式调用;

静态方法

特征:

  • 具有@staticmethod修饰器

静态方法即为普通函数,但是必须通过

实例.方法名()

类名.方法名()

的形式调用

Reference:

Python-Unbound/Bound method object – 简书

Introducing Python by Bill Lubanovic


UnicodeEncodeError: ‘ascii’ codec can’t encode

这个异常是由于Unicode编码与ASCII编码的不兼容引起。

使用

获得Python的默认环境编码为ascii
由于Python调用ascii编码解码程序去处理字符流,如字符流不属于ascii范围内,则抛出上述异常。

解决方案为修改默认的编码模式为utf8:

…待续…

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

人姬测试 *