python魔法属性

1.__doc__:表示类的描述信息

1 class Person(object):
2     ‘‘‘定义人的类‘‘‘
3     def func(self):
4         pass
5
6 print(Person.__doc__)
7 结果为:定义人的类

2.__module__ :表示当前操作的对象在那个模块

__class__ :表示当前操作的对象的类是什么

#定义一个test.py文件,键入如下代码:
class Person(object):
    def __init__(self):
        self.name = ‘laowang‘

#定义一个01.py文件,键入如下代码:
from test import Person

obj = Person()
print(obj.__module__)  # 结果 test 即:输出模块
print(obj.__class__)  # 结果 test.Person 即:输出类

3.__del__:当对象在内存中被释放时,自动触发执行

说明:__del__的调用是由解释器在进行垃圾回收时自动触发执行的。一般无需自定义

4.__init__ 和 __call__

定义一个类,当将此类实例化,即创建一个具体的对象时,就会触发__init__方法;而__call__是在给之前创建的对象加上括号时触发,可以按如下方式理解;

#coding=utf-8
class Person(object):
    def __init__(self):
        self.ability1 = ‘eat‘
        self.ability2 = ‘sleep‘
    def __call__(self,*args,**kwargs):
        print(‘你好,python‘)

people = Person() #此处执行__init__方法
people() #此处执行__call__方法

5.__dict__ :显示类或对象中属性的方法

class Person(object):
    ability = ‘think‘
    def __init__(slef,name,sex,age):
        self.name = name
        slef.sex = sex
        self.age = age

    def func(self,*args,**kwargs):
        pass
# 获取类的属性,即:类属性、方法
print(Province.__dict__)
# 获取 对象person1 的属性
person1 = Person(Tom,man,10)
print(person1.__dict__) 

6.__str__:在类中定义了__str__方法,在应用print函数打印实例对象是,会默认输出__str__方法的返回值

class Person(object):
    def __str__(self):
        return ‘Tom‘
obj = Foo()
print(obj)
# 输出:Tom

原文地址:https://www.cnblogs.com/houzichiguodong/p/8992855.html

时间: 2024-10-14 13:48:06

python魔法属性的相关文章

Python类属性访问的魔法方法

Python类属性访问的魔法方法: 1. __getattr__(self, name)- 定义当用户试图获取一个不存在的属性时的行为 2. __getattribute__(self, name)- 定义当该类的属性被访问时的行为 注意:当__getattr__与__getattribute__同时重写时,访问属性时,优先调用__getattribute__,只有当被访问的属性不存在时才触发__getattr__ 3. __setattr__(self, name, value)- 定义当一个

python 魔法方法,属性,迭代

9.2 构造方法 python 中也属于自己的构造函数和析构函数, class fibs: def __init__(self): self.a = 0 self.b = 1 def next(self): self.a,self.b = self.b,self.a+self.b return self.a def __iter__(self): return self fib = fibs() for i in fib: if i>1000: print i break 其中的__init__

十七、python 私有化和魔法属性

1.python私有化 xx:公有变量 _x:单前置下划线,私有化属性或方法,from module import * 禁止导入,但是类对象和子类可以访问. __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) __xx__:双前后下划线,用户名字空间的魔法对象或属性. xx_:单后置下划线,用于避免与python关键词的冲突. 通过name mangling(名字重整的目的就是以防子类意外重写基类的方法或者属性). 通过_Class__object机制

Python魔法

一.什么是Python魔法 Python一切皆对象,但同时,Python还是一个多范式语言(multi-paradigm),你不仅可以使用面向对象的方式来编写程序,还可以用面向过程的方式来编写相同功能的程序(还有函数式.声明式等).Python的多范式依赖于Python对象中的特殊方法(special method). 特殊方法名的前后各有两个下划线.特殊方法又被称为魔法方法(magic method).定义了许多Python语法和表达方式,正如我们在下面的例子中将要看到的.当对象中定义了特殊方

Python 魔法方法~~

网友写的python魔法方法详情 :详情 魔法方法 含义   基本的魔法方法 __new__(cls[, ...]) 1. __new__ 是在一个对象实例化的时候所调用的第一个方法2. 它的第一个参数是这个类,其他的参数是用来直接传递给 __init__ 方法3. __new__ 决定是否要使用该 __init__ 方法,因为 __new__ 可以调用其他类的构造方法或者直接返回别的实例对象来作为本类的实例,如果 __new__ 没有返回实例对象,则 __init__ 不会被调用4. __ne

Python魔法方法总结及注意事项

1.何为魔法方法: Python中,一定要区分开函数和方法的含义: 1.函数:类外部定义的,跟类没有直接关系的:形式: def func(*argv): 2.方法:class内部定义的函数(对象的方法也可以认为是属性):分为两种: ① python自动产生的(魔法方法):一般形式为 __func__(),python会在对应的时机自动调用该函数: ② 人为自定义的方法:一般和普通函数没有区别,只是定义在了class中而已 3.方法与函数的区别: 方法可认为是函数的特殊情况: ① 方法定义在cla

python 对象属性与 getattr & setattr

Python对象的属性可以通过obj.__dict__获得,向其中添加删除元素就可以实现python对象属性的动态添加删除的效果,不过我们应该使用更加正规的getattr和setattr来进行这类操作 getattr(object, name[, default]) Return the value of the named attribute of object. name must be a string. If the string is the name of one of the ob

Python函数属性

Python函数属性 python函数属性是全局的 注意:如果在使用函数前调用函数属性,会触发AttributeError异常 def add(x=2): try: add.sum += x except AttributeError: add.sum = x add() #如果没有运行此句,会触发 AttributeError异常 print(add.sum) # 输出:2 add.sum = 5 print(add.sum) # 输出:5 add(6) print(add.sum) # 输出

Python魔法缓存,以数字开始

Python魔法缓存,以数字开始 众所周知,Python是弱类型的脚本语言,变量的定义是不用声明类型的. a = 1 Python所有数字的本质都是对象, 他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象. 而变量名实际上创建了一个引用指向该数字. 我们可以用del语句删除该引用. a = 1 print(a) >>> 1 del a print(a) >>>Traceback (most recent call last): File "