http://www.hyundai-mp3.com.cn/article/view-7494.html
比如下面的例子:
class Book(object):
def __setattr__(self, name, value):
if name == 'value':
object.__setattr__(self, name, value - 100)
else:
object.__setattr__(self, name, value)
def __getattr__(self, name):
try:
return object.__getattribute__(name)
except:
return name + ' is not found!'
def __str__(self):
return self.name + ' cost : ' + str(self.value)
c = Book()
c.name = 'Python'
c.value = 100
print c.name
print c.value
print c
print c.Type
上面的例子中,在赋值书的value属性时,偷偷的将value减去了100,呵。输出结果:
Python
0
Python cost : 0
Type is not found! (责任编辑:admin)
分享到:
相关推荐
在Python编程中,有一些特殊的内置方法,通常被称为“魔法方法”(magic methods),它们以两个下划线开头和结束,如`__setattr__`, `__getattr__`, `__delattr__`和`__call__`。这些方法允许我们自定义对象的行为,...
class Book(object): def __setattr__(self, name, value): if name == ‘value’: object.__setattr__(self, name, value – 100) else: object.__setattr__(self, name, value) def __getattr__(self, name)...
`__setattr__`和`__delattr__`方法与`__getitem__`和`__getattr__`相对应,分别用于设置和删除对象的属性。当使用`obj.attr = value`或`del obj.attr`时,Python会调用`__setattr__`和`__delattr__`。 总的来说,`...
这个类继承了object, object是Python的最小单元,可以在Python的>>>控制台用dir(objct)或者dir (__builtins__.object)命令查看它的属性,可以看到__setattr__, __new__...他们是python中任何对象都会具有的属性,你...
主要方法有两种:使用`_ClassName`或`__getattr__`和`__setattr__`方法。 1. 使用`_ClassName`: Python允许通过类名前加下划线来访问私有变量,这被称为"名称 mangling"。例如: ```python class MyClass: ...
在Python中,hasattr()、getattr()、setattr()是三个用于操作对象属性和方法的内置函数。本文将详细讲解这三个函数的使用方法和应用场景。 首先,我们来看看hasattr()函数。这个函数用于判断一个对象中是否存在特定...
本文将详细地解析Python中的四个与属性操作相关的函数:hasattr()、getattr()、setattr()、delattr(),并通过具体的示例代码来演示它们的使用方法和场景。 首先,我们来看一下hasattr()函数。这个函数用于判断一个...
- **`__getattr__`, `__setattr__`, `__delattr__` 方法**:分别用于获取、设置和删除对象属性。当尝试访问不存在的属性时,`__getattr__` 会被调用。 ```python class DynamicAttrs: def __getattr__(self, ...
getattr()函数是Python自省的核心函数,具体使用大体如下: 获取对象引用getattr Getattr用于返回一个对象属性,或者方法 class A: def __init__(self): self.name = 'zhangjing' #self.age='' def method(self)...
在Python编程中,`hasattr()`, `getattr()`, 和 `setattr()` 是三个非常实用的内建函数,它们允许我们动态地检查、获取和设置对象的属性。这些函数在处理不确定的或动态的数据结构时特别有用,特别是在处理用户输入...
内置的`attr`属性,即`__getattr__`, `__setattr__` 和 `__delattr__`,是Python中处理类属性访问的特殊方法,它们提供了自定义属性操作的能力。下面将详细阐述这三个方法的功能、使用场景以及如何通过它们实现特定...
`__getattr__`, `__setattr__`, `__delattr__` - **功能**: - `__getattr__`: 当尝试获取不存在的属性时调用。 - `__setattr__`: 设置属性时调用。 - `__delattr__`: 删除属性时调用。 - **格式**: - `def __...
1. getattr()函数是Python自省的核心函数,具体使用大体如下: class A: def __init__(self): self.name = 'zhangjing' #self.age='24' def method(self): print"method print" Instance = A() print getattr...
这是因为`Proxy`类实现了Python的`__getattr__`、`__setattr__`等特殊方法,确保了透明性。 在实际项目中,`lazy_object_proxy`可以应用于多种场景。比如,在大型数据库应用中,可以使用它来延迟加载数据库连接,...
这些特殊方法提供了一种方式,使得Python的内置操作能够与自定义对象一起工作。本文讨论了如何利用这些方法来定制类的设计,从而增强类的功能和灵活性。 首先,Python的特殊方法__repr__用于定义对象的官方字符串...
- 类C在声明__slots__的同时,还定义了__setattr__和__getattr__魔术方法,以控制属性的设置和获取行为。__setattr__方法中检查属性是否在__slots__列表中,如果不是,则抛出异常。__getattr__方法返回属性值的描述...
在元编程中,`getattr()`和`setattr()`经常被用来创建和修改对象的属性,特别是对于动态类型系统如Python,这种能力尤为重要。 总结: `getattr()`函数在Python中扮演着动态访问和操作对象属性的重要角色,无论是...