2018/05/23

Python内置的@property装饰器

[@property](https://www.programiz.com/python-programming/property)

[Decorator](https://wiki.python.org/moin/PythonDecorators#What_is_a_Decorator)

[PythonDecoratorLibrary](https://wiki.python.org/moin/PythonDecoratorLibrary)

[FooFish-Python之禅 :理解 Python 装饰器看这一篇就够了](https://foofish.net/python-decorator.html)

[python @property的用法及含义](https://blog.csdn.net/qq_41673534/article/details/79221070)

#No.1
import logging def use_logging(func): def wrapper():
logging.warn("%s is running" % func.__name__)
return func()
return wrapper def foo():
print('i am foo') foo = use_logging(foo) foo()
import logging

def use_logging(func):

    def wrapper():
logging.warn("%s is running" % func.__name__)
return func()
return wrapper use_logging
def foo():
print("i am foo") foo()
resut:
WARNING:root:foo is running
i am foo
#No.2
import logging def use_logging(level):
def decorator(func):
def wrapper(*args, **kwargs):
if level == "warn":
logging.warn("%s is running" % func.__name__)
elif level == "info":
logging.info("%s is running" % func.__name__)
return func(*args)
return wrapper
return decorator @use_logging(level="warn")
def foo(name='foo'):
print("i am %s" % name) foo()
resut:
WARNING:root:foo is running
i am foo
#No.3
class Rectangle(object):
def __init__(self):
self.width = 10
self.heigh = 20
r = Rectangle()
print(r.width, r.heigh) r.width = 1.0
print(r.width, r.heigh)
resut:
10 20
1.0 20
#No.4
class Rectangle(object):
@property
def width(self):
return self.true_width @property
def height(self):
return self.true_height s = Rectangle()
s.width = 1024
s.height = 768
print(s.width, s.height)
resut:
Traceback (most recent call last):
File "D:/fly/Python/test.py", line 23, in <module>
s.width = 1024
AttributeError: can't set attribute

【坚持】Selenium+Python学习之从读懂代码开始 DAY6的更多相关文章

  1. 【坚持】Selenium+Python学习之从读懂代码开始 DAY1

    学习Selenium+Python已经好几个月了,但越学发现不懂的东西越多. 感觉最大的问题还是在于基础不扎实,决定从头开始,每天坚持读代码,写代码. 相信量变一定能到质变!!! 2018/05/09 ...

  2. 【坚持】Selenium+Python学习之从读懂代码开始 DAY7

    2018/05/25 EC [EC](https://github.com/easonhan007/webdriver_guide/blob/master/34/expected_conditions ...

  3. 【坚持】Selenium+Python学习之从读懂代码开始 DAY5

    2018/05/22 函数作为返回值 [来源:廖雪峰的官方网站](https://www.liaoxuefeng.com/) #No.1 def lazy_sum(*args): def sum(): ...

  4. 【坚持】Selenium+Python学习之从读懂代码开始 DAY3

    2018/05/15 [来源:菜鸟教程](http://www.runoob.com/python3/python3-examples.html) #No.1 list = [1, 2, 3, 4] ...

  5. 【坚持】Selenium+Python学习之从读懂代码开始 DAY2

    2018/05/10 [来源:菜鸟教程](http://www.runoob.com/python3/python3-examples.html) #No.1 # 二次方程式 ax**2 + bx + ...

  6. 【坚持】Selenium+Python学习之从读懂代码开始 DAY4

    2018/05/21 [生成器详解:廖雪峰的官方网站](https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d ...

  7. 软件测试自动化…python学习到什么程度?代码好不好学!

    软件测试自动化…python学习到什么程度?代码好不好学! 如下:

  8. Gradle学习系列之三——读懂Gradle语法

    在本系列的上篇文章中,我们讲到了创建Task的多种方法,在本篇文章中,我们将学习如何读懂Gradle. 请通过以下方式下载本系列文章的Github示例代码: git clone https://git ...

  9. selenium+python学习总结

    学习了一个月的selenium+python,终于学有所成,下面以一个简单的项目来总结学习所得. 1.         项目结构 在项目结构中,大家要注意到:每一个源文件夹中都要有一个__init__ ...

随机推荐

  1. 1192. [HNOI2006]鬼谷子的钱袋【进制】

    Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一 ...

  2. 2049. [SDOI2008]Cave 洞穴勘测【LCT】

    Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好 ...

  3. nuxt 脚手架创建nuxt项目中不支持es6语法的解决方案

    node本身并不支持es6语法,我们通常在vue项目中使用es6语法,是因为,我们使用babel做过处理, 为了让项目支持es6语法,我们必须同时使用babel 去启动我们的程序,所以再启动程序中加 ...

  4. mac下用xattr命令来删除文件的扩展属性

    mac下发现不能用记事本打开文本文件,ls -la 发现格式后面有个@ wenke-mini:changeServer wenke$ ls -la total 144 drwxr-xr-x  20 w ...

  5. ASP.NET Core多语言 (转载)

    ASP.NET Core中提供了一些本地化服务和中间件,可将网站本地化为不同的语言文化.ASP.NET Core中我们可以使用Microsoft.AspNetCore.Localization库来实现 ...

  6. C#反射使用时注意BindingFlags的用法(转载)

    最近刚刚开始用反射做项目,遇到一个小的知识点,记录一下. c#反射查找方法时,默认只能查到public方法.如果想要查找private方法,需要设定BindingFlags.    即: Bindin ...

  7. MySQL学习【第一篇介绍】

    一.数据库mysql的特点 1.首先数据库分为RDBMS(关系型数据库),和NOSQL(非关系型数据库),而我们的mysql则是RDBMS. 2.RDMS和NOSQL特点对比 RDBMS特点: (1) ...

  8. Cannot obtain block length for LocatedBlock故障分析和解决

    来源:CSDN 作者:Syn良子 原文:https://blog.csdn.net/cssdongl/article/details/77750495  一.问题背景 问题产生的原因可能是由于前几日H ...

  9. rtthread移植到jz2440之BootLoader

    从2016年第一次接触rtthread,感觉很容易上手,记得一个项目是小飞行器上的IPC,趁着空闲,手里有一块jz2440的板子,准备在这块板子上跑起来rtthread,查了很多资料,最后决定自己写一 ...

  10. 记换换回收一个js逆向分析

    随着现在对数据的重视程度越来越高,现在各大网站都加强了反爬技术,比如本文中js加密 url地址:https://www.huanhuanhuishou.com/gujia/22201.html 需要爬 ...