How to use __delete__ method in hypothesis

Best Python code snippet using hypothesis

2019-8-13-Property.py

Source:2019-8-13-Property.py Github

copy

Full Screen

...14 def __get__(self,instance,owner):15 print('getting...',self,instance,owner)16 def __set__(self,instance,value):17 print('setting...',self,instance,value)18 def __delete__(self,instance):19 print('deleting...',self,instance)2021 22>>> class Test:23 x = MyDecriptor()2425 26>>> ##描述符,MyDecriptor就是描述符类27>>> 28>>> test = Test()29>>> test.x30getting... <__main__.MyDecriptor object at 0x000002130ACF4548> <__main__.Test object at 0x000002130ACE2B08> <class '__main__.Test'>31>>> test32<__main__.Test object at 0x000002130ACE2B08>33>>> Test34<class '__main__.Test'>35>>> test.x = 'X_man'36setting... <__main__.MyDecriptor object at 0x000002130ACF4548> <__main__.Test object at 0x000002130ACE2B08> X_man37>>> del test.x38deleting... <__main__.MyDecriptor object at 0x000002130ACF4548> <__main__.Test object at 0x000002130ACE2B08>39>>> 40=============================== RESTART: Shell ===============================41>>> class NyProperty:42 def __init__(self,fget = None,fset = None,fdel = None):43 self.fget = fget44 self.fset = fset45 self.fdel = fdel46 def __get__(self,instance,owner):47 return self.fget(instance)48 def __set__(self,instance,value):49 return self.fset(instance,value)50 def __del__(self,instance):51 self.fdel(instance)5253 54>>> 55>>> class C:56 def __init__(self):57 self._x = None58 def getX(self):59 return self._x60 def setX(self,value):61 self._x = value62 def delX(self):63 del self.x64 x = MyProperty(getX,setX,delX)6566 67Traceback (most recent call last):68 File "<pyshell#44>", line 1, in <module>69 class C:70 File "<pyshell#44>", line 10, in C71 x = MyProperty(getX,setX,delX)72NameError: name 'MyProperty' is not defined73>>> class MyProperty:74 def __init__(self,fget = None,fset = None,fdel = None):75 self.fget = fget76 self.fset = fset77 self.fdel = fdel78 def __get__(self,instance,owner):79 return self.fget(instance)80 def __set__(self,instance,value):81 return self.fset(instance,value)82 def __del__(self,instance):83 self.fdel(instance)8485 86>>> class C:87 def __init__(self):88 self._x = None89 def getX(self):90 return self._x91 def setX(self,value):92 self._x = value93 def delX(self):94 del self.x95 x = MyProperty(getX,setX,delX)9697 98>>> c = C()99>>> c.x = 'x-man'100>>> c.x101'x-man'102>>> c._x103'x-man'104>>> del c.x105Traceback (most recent call last):106 File "<pyshell#53>", line 1, in <module>107 del c.x108AttributeError: __delete__109>>> class MyProperty:110 def __init__(self,fget = None,fset = None,fdel = None):111 self.fget = fget112 self.fset = fset113 self.fdel = fdel114 def __get__(self,instance,owner):115 return self.fget(instance)116 def __set__(self,instance,value):117 return self.fset(instance,value)118 def __delete__(self,instance):119 self.fdel(instance)120121 122>>> class C:123 def __init__(self):124 self._x = None125 def getX(self):126 return self._x127 def setX(self,value):128 self._x = value129 def delX(self):130 del self.x131 x = MyProperty(getX,setX,delX)132 ...

Full Screen

Full Screen

descriptor.py

Source:descriptor.py Github

copy

Full Screen

...21 print u"В атрибут", self, u"хотят записать значение", value,22 print u"через экземпляр", instance23 print u"Этот метод может сохранить новое значение"24 # Вызывается при удалении "del instance.атрибут"25 def __delete__(self, instance):26 print u"Атрибут", self, u"хотят удалить через экземпляр", instance27 print u"Этот метод может как-нибудь удалить атрибут. ",28 print u"При этом сам дескриптор останется."29 30class A(object):31 32 x = MyDescriptor() # Это будут атрибуты класса, доступ к которым33 y = MyDescriptor() # контролируется методами __get__/__set__/__delete__34a = A()35print a.x # 123, вызовет MyDescriptor.__get__(x, a, A)36print A.x # 123, вызовет MyDescriptor.__get__(x, None, A)37a.x = 5 # Вызовет MyDescriptor.__set__(x, a, 5)38#A.x = 5 # Атрибут A.x станет числом 5, __set__ не будет вызван39del a.x # Вызовет MyDescriptor.__delete__(x, a), A.x не будет удален40print a.x # 12341# Замечание: Дескриптор, у которого есть метод __set__ или __del__, называется 42# дескриптором данных (data descriptor). Такие дескрипторы имеют приоритет 43# перед личными атрибутами объекта при чтении и записи. Например, если у 44# класса есть дескриптор данных "x", а у экземпляра этого класса есть 45# атрибут "x", чтение/запись "экземпляр.x" будет работать с дескриптором. 46# Про чтение/запись атрибутов см. в заметке "classes".47#48# Замечание: Любая функция имеет метод __get__, который возвращает специальный 49# объект-метод для этой функции. Поэтому функция - это дескриптор, и когда она 50# является атрибутом класса, при обращении к ней создается метод.51#52# Замечание: Объект ведет себя как дескриптор только при обращении к нему как 53# к атрибуту класса. В остальных случаях методы __get__/__set__/__delete__ ...

Full Screen

Full Screen

09 __get__,__set__,__delete__方法.py

Source:09 __get__,__set__,__delete__方法.py Github

copy

Full Screen

2# __title__ = '09 __get__,__set__,__delete__方法.py'3# __author__ = 'yangyang'4# __mtime__ = '2018.03.20'5'''6 描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()中的一个,这也被称为描述符协议7__get__():调用一个属性时,触发8__set__():为一个属性赋值时,触发9__delete__():采用del删除属性时,触发10描述符是干什么的:描述符的作用是用来代理另外一个类的属性的(必须把描述符定义成这个类的类属性,不能定义到构造函数中)11'''12#描述符Str13class Str:14 def __get__(self, instance, owner):15 print('Str调用')16 def __set__(self, instance, value):17 print('Str设置...')18 def __delete__(self, instance):19 print('Str删除...')20#描述符Int21class Int:22 def __get__(self, instance, owner):23 print('Int调用')24 def __set__(self, instance, value):25 print('Int设置...')26 def __delete__(self, instance):27 print('Int删除...')28class People:29 name=Str()30 age=Int()31 def __init__(self,name,age): #name被Str类代理,age被Int类代理,32 self.name=name33 self.age=age34#何地?:定义成另外一个类的类属性35#何时?:且看下列演示36p1=People('ryan',18) # 调用描述符的 __set__37#描述符Str的使用38# p1.name # 调用描述符的 __get__39# p1.name='cherry' # 调用描述符的 __set__40# del p1.name # 调用Str 描述符的 __delete__...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run hypothesis automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful