python 函数方法大赏

Posted 胖虎是只mao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 函数方法大赏相关的知识,希望对你有一定的参考价值。

  1. isinstance(). 判断类型
  2. isoformat().它使用日期类对象,并以ISO 8601格式YYYY-MM-DD返回表示日期的字符串。 日期和时间表示的国际标准是ISO8601。该标准旨在提供日期和时间表示的格式
>>> from datetime import date
>>> p  = date.today()
>>> k = p.isoformat()
>>> k
'2021-12-09'
>>> type(k)
<class 'str'>

  1. json.dumps() 之前一直有个误区,是以为字典转成json字符串的。实际上,python对象都可以转。
>>> p = [1,2,3,4,5]
>>> type(p)
<class 'list'>
>>> pp =json.dumps(p)
>>> pp
'[1, 2, 3, 4, 5]'
>>> type(pp)
<class 'str'>
>>> 
>>> k=(1,2,3)
>>> kk = json.dumps(k)
>>> kk
'[1, 2, 3]'
>>> type(k)
<class 'tuple'>
>>> type(kk)
<class 'str'>
>>> k
(1, 2, 3)


  1. 内置函数__repr__
    是Python类中的一个特殊方法,由object对象提供,由于所有类都是object类的子类,所以都会继承该方法!!!

它是一个 ”自我描述“ 的方法,此方法通常实现这样的功能: 当直接打印类的实例化对象时,系统将会输出对象的自我描述信息,用来告诉外界对象具有的状态信息。

但是由于object提供的这个__repr__方法总是返回一个对象, ( 类名 + obejct at + 内存地址 ),这个值并不能真正实现自我描述的功能!!!因此,如果你想在自定义类中实现 “自我描述” 的功能,那么必须重写 repr 方法

class Person():
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def __repr__(self):
        return 'Person类,包含name='+self.name+'和age='+str(self.age)+'两个实例属性'
person = Person('吕星辰',20)
 
print(person) # Person类,包含name=吕星辰和age=20两个实例属性

上边代码,重写了__repr__,打印person实例时,就可以返回类的 ”自我描述“ 的信息。

__repr__默认返回值的实现

class Person():
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def __repr__(self):
        return '<0.1 object at 2>'.format(self.__module__,type(self).__name__,hex(id(self)))
 
person = Person('吕星辰',20)
 
print(person) #   <__main__.Person object at 0x5ba6a0>

项目实例:

class Page:
    def __init__(self, pn, size):
        self.pn = pn
        self.size = size

    def __repr__(self):
        # 此处只是简单地返回一个 JSON 字符串
        # 使用 JSONEncoder().encode 等同于使用 json.dumps
        # 因为后者在源码中的实现也是调用了 JSONEncoder 类
        return JSONEncoder().encode(self.__dict__)
        # return json.dumps(self.__dict__)

p = Page(1890,880)
print(p)

"pn": 1890, "size": 880

以上是关于python 函数方法大赏的主要内容,如果未能解决你的问题,请参考以下文章

python 元组有用的函数,方法和片段。

JS 烧脑面试题大赏

「C语言迷惑行为大赏」这些代码你绝对猜不到结果!

「C语言迷惑行为大赏」这些代码你绝对猜不到结果!

常用python日期日志获取内容循环的代码片段

C语言迷惑行为大赏