`
f002489
  • 浏览: 271494 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Python __getattr__与__setattr_ ★☆★动态方法__getattr__

阅读更多

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 __setattr__、 __getattr__、 __delattr__、__call__用法示例

    在Python编程中,有一些特殊的内置方法,通常被称为“魔法方法”(magic methods),它们以两个下划线开头和结束,如`__setattr__`, `__getattr__`, `__delattr__`和`__call__`。这些方法允许我们自定义对象的行为,...

    Python __getattr__与__setattr__使用方法

    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)...

    Python类中方法getitem和getattr详解

    `__setattr__`和`__delattr__`方法与`__getitem__`和`__getattr__`相对应,分别用于设置和删除对象的属性。当使用`obj.attr = value`或`del obj.attr`时,Python会调用`__setattr__`和`__delattr__`。 总的来说,`...

    浅谈Python类的__getitem__和__setitem__特殊方法

    这个类继承了object, object是Python的最小单元,可以在Python的>>>控制台用dir(objct)或者dir (__builtins__.object)命令查看它的属性,可以看到__setattr__, __new__...他们是python中任何对象都会具有的属性,你...

    Python私有变量的用法共1页.pdf.zip

    主要方法有两种:使用`_ClassName`或`__getattr__`和`__setattr__`方法。 1. 使用`_ClassName`: Python允许通过类名前加下划线来访问私有变量,这被称为"名称 mangling"。例如: ```python class MyClass: ...

    详解Python的hasattr() getattr() setattr() 函数使用方法

    在Python中,hasattr()、getattr()、setattr()是三个用于操作对象属性和方法的内置函数。本文将详细讲解这三个函数的使用方法和应用场景。 首先,我们来看看hasattr()函数。这个函数用于判断一个对象中是否存在特定...

    详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数

    本文将详细地解析Python中的四个与属性操作相关的函数:hasattr()、getattr()、setattr()、delattr(),并通过具体的示例代码来演示它们的使用方法和场景。 首先,我们来看一下hasattr()函数。这个函数用于判断一个...

    python 常用方法

    - **`__getattr__`, `__setattr__`, `__delattr__` 方法**:分别用于获取、设置和删除对象属性。当尝试访问不存在的属性时,`__getattr__` 会被调用。 ```python class DynamicAttrs: def __getattr__(self, ...

    浅析Python中的getattr(),setattr(),delattr(),hasattr()

    getattr()函数是Python自省的核心函数,具体使用大体如下: 获取对象引用getattr Getattr用于返回一个对象属性,或者方法 class A: def __init__(self): self.name = 'zhangjing'  #self.age='' def method(self)...

    python中hasattr()、getattr()、setattr()函数的使用

    在Python编程中,`hasattr()`, `getattr()`, 和 `setattr()` 是三个非常实用的内建函数,它们允许我们动态地检查、获取和设置对象的属性。这些函数在处理不确定的或动态的数据结构时特别有用,特别是在处理用户输入...

    Python面向对象之类的内置attr属性示例

    内置的`attr`属性,即`__getattr__`, `__setattr__` 和 `__delattr__`,是Python中处理类属性访问的特殊方法,它们提供了自定义属性操作的能力。下面将详细阐述这三个方法的功能、使用场景以及如何通过它们实现特定...

    python特殊函数

    `__getattr__`, `__setattr__`, `__delattr__` - **功能**: - `__getattr__`: 当尝试获取不存在的属性时调用。 - `__setattr__`: 设置属性时调用。 - `__delattr__`: 删除属性时调用。 - **格式**: - `def __...

    全面了解Python的getattr(),setattr(),delattr(),hasattr()

    1. getattr()函数是Python自省的核心函数,具体使用大体如下: class A: def __init__(self): self.name = 'zhangjing' #self.age='24' def method(self): print"method print" Instance = A() print getattr...

    Python库 | lazy_object_proxy-1.4.2-cp37-cp37m-win_amd64.whl

    这是因为`Proxy`类实现了Python的`__getattr__`、`__setattr__`等特殊方法,确保了透明性。 在实际项目中,`lazy_object_proxy`可以应用于多种场景。比如,在大型数据库应用中,可以使用它来延迟加载数据库连接,...

    Python定制类设计.pdf

    这些特殊方法提供了一种方式,使得Python的内置操作能够与自定义对象一起工作。本文讨论了如何利用这些方法来定制类的设计,从而增强类的功能和灵活性。 首先,Python的特殊方法__repr__用于定义对象的官方字符串...

    Python中的__SLOTS__属性使用示例

    - 类C在声明__slots__的同时,还定义了__setattr__和__getattr__魔术方法,以控制属性的设置和获取行为。__setattr__方法中检查属性是否在__slots__列表中,如果不是,则抛出异常。__getattr__方法返回属性值的描述...

    在Python中通过getattr获取对象引用的方法

    在元编程中,`getattr()`和`setattr()`经常被用来创建和修改对象的属性,特别是对于动态类型系统如Python,这种能力尤为重要。 总结: `getattr()`函数在Python中扮演着动态访问和操作对象属性的重要角色,无论是...

Global site tag (gtag.js) - Google Analytics