@@ -16,13 +16,22 @@ class Accessory:
1616 _puppet : Optional [Puppet ] = None
1717 # static _wechaty property to doing ...
1818 _wechaty : Optional [Wechaty ] = None
19+ _counter : int = 0
1920
20- def __str__ (self ):
21+ def __init__ (self , name : str = "accessory" ):
22+ """
23+ initialize the accessory instance
24+ """
25+ self .name : str = name
26+ # increase when Accessory is initialized
27+ self ._counter += 1
28+
29+ def __str__ (self ) -> str :
2130 """
2231 docstring
23- :return:
32+ :return: the base accessory class name
2433 """
25- raise NotImplementedError
34+ return "Accessory instance : %s" % self . name
2635
2736 @classmethod
2837 def puppet (cls , value : Optional [Puppet ] = None ) -> Optional [Puppet ]:
@@ -31,12 +40,17 @@ def puppet(cls, value: Optional[Puppet] = None) -> Optional[Puppet]:
3140 :return:
3241 """
3342 if value is None :
34- LOG .info ("get puppet instance ..." )
3543 if cls ._puppet is None :
3644 raise AttributeError ("static puppet instance not found ..." )
45+ LOG .info ("get puppet instance %s ..." ,
46+ cls ._puppet .name )
3747 return cls ._puppet
3848
39- LOG .info ("set puppet instance ..." )
49+ if cls ._puppet is not None :
50+ raise AttributeError ("can't set puppet instance %s twice" %
51+ cls ._puppet .name )
52+ LOG .info ("set puppet instance %s ..." ,
53+ value .name )
4054 cls ._puppet = value
4155 return None
4256
@@ -52,14 +66,18 @@ def wechaty(cls, value: Optional[Wechaty] = None) -> Optional[Wechaty]:
5266 :return:
5367 """
5468 if value is None :
55- LOG .info ("get wechaty instance" )
5669 if cls ._wechaty is None :
5770 raise AttributeError ("wechaty instance not found" )
71+ LOG .info ("get wechaty instance %s" ,
72+ cls ._wechaty .name )
5873 return cls ._wechaty
5974 if not isinstance (value , Wechaty ):
6075 raise NameError (
6176 "expected wechaty instance type is Wechaty, "
6277 "but got %s" % value .__class__
6378 )
79+ if cls ._wechaty is not None :
80+ raise AttributeError ("can't set wechaty instance %s twice" %
81+ cls ._wechaty .name )
6482 cls ._wechaty = value
6583 return None
0 commit comments