擅长:python、mysql、java
<p>对于更静态的硬编码解决方案</p>
<pre><code>class NonNegative:
def __set_name__(self, owner, name):
self.name = name
def __get__(self, instance, owner):
if instance is None:
return self
if isinstance(instance, Person) and instance.__dict__.get('fingerCount') is None:
instance.fingerCount = 10
if isinstance(instance, Person) and instance.__dict__.get('eyesCount') is None:
instance.eyesCount = 2
return instance.__dict__[self.name]
def __set__(self, instance, value):
instance.__dict__[self.name] = value
class Person:
fingerCount = NonNegative()
eyesCount = NonNegative()
def __init__(self, name):
self.name = name
p = Person("name")
print(p.fingerCount)
print(p.eyesCount)
# 10
# 2
</code></pre>