持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第13天,点击查看活动详情 今天分享一些数据库的一些小知识。
今天就再来介绍一些python相关的有趣和使用的小技巧吧,感兴趣的赶紧关注起来哦
try except和try except Exception as e的区别
sort()函数是对可迭代对象的排序,直接修改源对象,没有返回值
x=[8,9,0,7,4,5,1,2,3,6]
x.sort(key,reverse=True)
sorted函数u二十对可迭代对象进行排序,但是不修改源对象,会返回一个新的值 3.sorted()函数会返回一个排序列表,不改变原有序列
x=[8,9,0,7,4,5,1,2,3,6]
y=sorted(x,key,reverse=True)
try:
pass
except Exception as e:
pass
没区别,只是缩写,代码看起来更为整洁而已,except 后面也可以不指定具体的异常名称,这样的话,表示要捕获所有类型的异常。有机会可以详细说一下exception的继承关系。
@property
@property,熟悉的人都知道,这是python装饰器的写法,当我们使用@property来装饰方法时,会将方法转换为相同名称只读属性,从而创造一个只读属性。这样可以防止属性被篡改。
一般都是配合@x.setter来使用的,可以通过setter对需要修改的参数进行校验。 如下:
class C:
def __init__(self):
self._x = None
@property
def x(self):
"""I'm the 'x' property."""
return self._x
@x.setter
def x(self, value):
self._x = value
返回多个值
在python中的函数/方法是可以返回多个返回值的,且无需使用列表,字典或者类。如果返回值的数量有限的话,这样使用是没有任何问题的,但是如果返回值超过三个,建议将返回值放到一个数据类中,就像下一个小知识点说的一样,代码如下:
def get_user_info()
return "boy","18","sam"
sex,age,name = get_user_info()
数据类
Python从版本3.7开始提供数据类。与常规类或其他方法(比如返回多个值或字典)相比,数据类有几个明显的优势:
- 数据类的代码量较少
- 你可以比较数据类,因为数据类提供了 eq 方法
- 调试的时候,你可以轻松地输出数据类,因为数据类还提供了 repr 方法
- 数据类需要类型提示,因此可以减少Bug的发生几率
数据类的示例如下:
from dataclasses import dataclass
@dataclass
classCard:
rank: str
suit: str
card = Card( "Q", "hearts")
print(card == card)
# True
print(card.rank)
# 'Q'
print(card)
Card(rank= 'Q', suit= 'hearts')