扣丁学堂Python培训

扣丁学堂简述Python开发的技巧有哪些

2018-08-10  本文已影响2人  994d14631d16

关于Python开发的技巧小编在上篇文章已经给大家分享过一些,本篇文章扣丁学堂Python培训小编再和大家分享一下Python开发的技巧有哪些,下面随小编一起来了解一下Python开发的技巧有哪些吧。

Python培训

property装饰器:

定义私有类属性

将property与装饰器结合实现属性私有化(更简单安全的实现get和set方法)。

#python内建函数

property(fget=None, fset=None, fdel=None, doc=None)

fget是获取属性的值的函数,fset是设置属性值的函数,fdel是删除属性的函数,doc是一个字符串(像注释一样)。从实现来看,这些参数都是可选的。

property有三个方法getter(), setter()和delete() 来指定fget, fset和fdel。 这表示以下这行:

class Student(object):

@property #相当于property.getter(score) 或者property(score)

def score(self):

return self._score

@score.setter #相当于score = property.setter(score)

def score(self, value):

if not isinstance(value, int):

raise ValueError('score must be an integer!')

if value < 0 or value > 100:

raise ValueError('score must between 0 ~ 100!')

self._score = value

iter魔法

通过yield和__iter__的结合,我们可以把一个对象变成可迭代的

通过__str__的重写, 可以直接通过想要的形式打印对象

#!/usr/bin/env python

# -*- coding: utf-8 -*-

class TestIter(object):

def __init__(self):

self.lst = [1, 2, 3, 4, 5]

def read(self):

for ele in xrange(len(self.lst)):

yield ele

def __iter__(self):

return self.read()

def __str__(self):

return ','.join(map(str, self.lst))

__repr__ = __str__

def test_iter():

obj = TestIter()

for num in obj:

print num

print obj

if __name__ == '__main__':

test_iter()

神奇partial:

partial使用上很像C++中仿函数(函数对象)。

在stackoverflow给出了类似与partial的运行方式:

def partial(func, *part_args):

def wrapper(*extra_args):

args = list(part_args)

args.extend(extra_args)

return func(*args)

return wrapper

利用用闭包的特性绑定预先绑定一些函数参数,返回一个可调用的变量,直到真正的调用执行:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

from functools import partial

def sum(a, b):

return a + b

def test_partial():

fun = partial(sum, 2) # 事先绑定一个参数, fun成为一个只需要一个参数的可调用变量

print fun(3) # 实现执行的即是sum(2, 3)

if __name__ == '__main__':

test_partial()

# 执行结果

5

以上就是扣丁学堂Python在线学习小编给大家分享的Python开发的技巧有哪些,希望对小伙伴们有所帮助,想要了解更多内容的小伙伴可以登录扣丁学堂官网咨询。想要学好Python开发小编给大家推荐口碑良好的扣丁学堂,扣丁学堂有专业老师制定的Python学习路线图辅助学员学习,此外还有与时俱进的Python课程体系和大量的Python视频教程供学员观看学习,想要学好Python开发技术的小伙伴快快行动吧。

上一篇下一篇

猜你喜欢

热点阅读