python 函数方法大赏
Posted 胖虎是只mao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 函数方法大赏相关的知识,希望对你有一定的参考价值。
- isinstance(). 判断类型
- 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'>
- 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)
- 内置函数__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 函数方法大赏的主要内容,如果未能解决你的问题,请参考以下文章