python魔法属性
1.__doc__:表示类的描述信息
class Person(object):
'''定义人的类'''
def func(self):
pass print(Person.__doc__)
结果为:定义人的类
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
python魔法属性的更多相关文章
- python进阶之类常用魔法方法和魔法属性
前言 前面我们总结过了python的关键字.运算符.内置函数.语法糖等与python魔法方法之间的关系,现在我们更细一点,看看python的面向对象编程有哪些常用的魔法属性和魔法方法. 魔法属性 对于 ...
- python进阶之函数和类内建魔法属性
前言 关于对象的魔法方法我们已经讲得太多,但是对于类或函数内建的魔法属性和功能我们涉及较少,下面系统了解一下类和函数的内建属性. 查看内建属性 class Person(object): pass d ...
- Python类属性访问的魔法方法
Python类属性访问的魔法方法: 1. __getattr__(self, name)- 定义当用户试图获取一个不存在的属性时的行为 2. __getattribute__(self, name)- ...
- Python高级笔记(七)魔法属性
1. 私有属性 名字重整 print(Test.__dict__) {'__weakref__': <attribute '__weakref__' of 'Test' objects>, ...
- 『无为则无心』Python面向对象 — 60、魔法属性
目录 1.魔法属性__name__ 2.魔法属性__bases__ 3.魔法属性__mro__ 4.魔法属性__doc__ 5.魔法属性__module__ 和__class__ 6.魔法属性__di ...
- Python魔法 - MetaClass
Python魔法 - MetaClass metaclass The class of a class. Class definitions create a class name, a class ...
- Python魔法方法总结及注意事项
1.何为魔法方法: Python中,一定要区分开函数和方法的含义: 1.函数:类外部定义的,跟类没有直接关系的:形式: def func(*argv): 2.方法:class内部定义的函数(对象的方法 ...
- python魔法方法:__getattr__,__setattr__,__getattribute__
python魔法方法:__getattr__,__setattr__,__getattribute__ 难得有时间看看书....静下心来好好的看了看Python..其实他真的没有自己最开始想的那么简单 ...
- python魔法方法大全
1.python魔法方法详解: python魔法方法是可以修改重载的,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而 ...
随机推荐
- Canvas入门04-绘制矩形
使用的API: ctx.strokeRect(x, y, width, height) 给一个矩形描边 ctx.fillRect(x, y, width, height) 填充一个矩形 ctx.cle ...
- 文件类型 | 命令ln | 软链接硬链接
1.9文件类型 1.9.1常见文件类型 d:目录 -:普通文件 l:链接文件 b:设备 1.9.2文件后缀名 sh:shell脚本 tar.gz:压缩包 my.cnf:配置文件 test.zip:压缩 ...
- Mongodb-安全配置优化
1.MongoDB配置文件样例 # mongod.conf, Percona Server for MongoDB # for documentation of all options, see: # ...
- 分享一个linux中测试网站是否正常的shell脚本
#! /bin/bash #Author=Harry CheckUrl() { #<==定义函数,名字为CheckUrl timeout=5 #<==定义wget访问的超时时间,超时就退出 ...
- RocketMQ事务性消息及持久化
TransactionProducer(事务消息): 在分布式系统中,我们时常会遇到分布式事务的问题,除了常规的解决方案之外,我们还可以利用RocketMQ的事务性消息来解决分布式事务的问题.Rock ...
- ES6生成器与迭代器
ES6迭代器的一个例子 function run(taskDef) { var task = taskDef(); var result = task.next(); // 递归执行迭代 functi ...
- Python 矩阵(线性代数)
Python 矩阵(线性代数) 这里有一份新手友好的线性代数笔记,是和深度学习花书配套,还被Ian Goodfellow老师翻了牌. 笔记来自巴黎高等师范学院的博士生Hadrien Jean,是针对& ...
- STL: HDU1004Let the Balloon Rise
Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- java中关键字final,finally,finalize的区别
-final:作为修饰符关键字,有三种用法: 1,如果一个类被声明为final,则意味着它不能被继承. 2,将变量声明为final,则表示它是一个常量,也就是保证它在使用过程中不被修改,被final修 ...
- 吴恩达深度学习:2.3梯度下降Gradient Descent
1.用梯度下降算法来训练或者学习训练集上的参数w和b,如下所示,第一行是logistic回归算法,第二行是成本函数J,它被定义为1/m的损失函数之和,损失函数可以衡量你的算法的效果,每一个训练样例都输 ...