[py]python中__new__作用
使劲搞,但是没搞清楚__new__的作用
了解Python元类
Python进阶:一步步理解Python中的元类metaclass
__new__的作用: 元类
class Author(type):
# 类对象 类名 父类 类属性和方法
def __new__(mcs, name, bases, dict):
# 添加作者属性
dict["author"] = "mm"
return super(Author, mcs).__new__(mcs, name, bases, dict)
class Foo(object, metaclass=Author):
pass
foo = Foo()
print(foo.author)
创建类
def fn(self):
print("maotai")
# 类名 父类 属性
Hello = type("Hello", (object,), dict(hello=lambda x: x + 1))
h = Hello()
h.hello(12)
## type
# 1,同__class__, 实例属于哪一类 类属于哪一类
# 2,创建一个类
匿名函数
g = lambda x: x + 1
print(g(1))
self是什么
class A:
# self是什么
def __init__(self):
print(self)
a = A()
print("--->",a)
cls的含义
class A:
## cls的含义
@classmethod
def show(cls,name):
print("A",name)
a = A()
a.show("maota")
子类调用父类方法super
class A:
def show(self):
print("hello A")
class B(A):
def show2(self):
super().show() # 调用父类方法
b = B()
b.show2()
类的属性和方法
class A:
age = 22
def __init__(self):
self.name = 'maotai'
def show(self):
pass
## dir(A) 有age, show 类的属性和方法
## dir(A()) 有name和age,show 实例的属性和方法
for i in dir(A()):
print(i)
print(A.__dict__) # age show 类属性和方法
# __doc__
# __init__
# __dict_
# __dir__
# __class__
# __delattr__
# __new__
# __repr__
# __setattr__
@property和__call__ 与 callable()
class Person:
# 对象当作属性来调用
@property
def show(self):
print("mao tai")
# 打印实例()时候的显示
def __call__(self, *args, **kwargs):
print("hello maotai")
p = Person()
# p() # hello maotai
# TypeError: 'Person' object is not callable
p.show # mao tai
print(callable(p)) # True
[py]python中__new__作用的更多相关文章
- Python中__new__的作用
__new__ 的作用 依照Python官方文档的说法,__new__方法主要是当你继承一些不可变的class时(比如int, str, tuple), 提供给你一个自定义这些类的实例化过程的途径.还 ...
- Python中__new__方法为什么有人说是构造方法?有什么作用?
__new__方法是Python新式类引入的,通常用于控制生成一个新实例的过程.它是类级别的静态方法,是在创建实例对象前执行,如果自定义类中没有重写该方法,则Python自动调用父类的方法,当所有父类 ...
- Python中__new__()方法的使用和实例化
new()是在新式类中新出现的方法,它作用在构造方法init()建造实例之前,可以这么理解,在Python 中存在于类里面的构造方法init()负责将类的实例化,而在init()调用之前,new()决 ...
- Python 中星号作用:解包&打散
python中’*’和’**’的使用分两个方面,一个是计算,另一个是参数传递过程中元素的打包和解包. 计算方面 ‘*’和’**’在python中最常见的作用分别是‘相乘’和‘乘幂’,如下: > ...
- decorator在Python中的作用
decorator(装饰器)在python中作用,可以起到代码复用,也可以起到AOP(面向横切面)的作用. 另外很重要的一点应该就是function在python的世界中是作为一等公民存在的. 在py ...
- Python中__new__与__init__介绍
在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...
- [py]python中的特殊类class type和类的两面性图解
生活中的模具 生活中 编程 万物都从无到有, 起于烟尘 () 生产原料,铁 object 车床-生产各类模具 元类即metaclass,对应python的class type 模具-生产各类实在的物品 ...
- python中 __new__和__init__
python这两个函数和类的实例化有关. __init__是实例化完成之后调用的,会对生成的对象实例做一些修饰 __new__是python新类型才有的,它更像是c/c++里面的构造函数,因为这个函数 ...
- Python 中__new__()和__init__()的区别
转自: https://blog.csdn.net/weixin_37579123/article/details/89515577 __new__方法:类级别的方法 特性: 1.是在类准备将自身实例 ...
随机推荐
- 查看当前mysql数据库实例中,支持的字符集有哪些,或者是否支持某个特定字符集
需求描述: 查看当前mysql实例中支持哪些字符集,过滤特定的字符集 操作过程: 1.通过show character set来进行查看 mysql> show character set; + ...
- python计算时间差的方法
本文实例讲述了python计算时间差的方法.分享给大家供大家参考.具体分析如下: 1.问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2.解决方法: 标准模块date ...
- 【RF库测试】Variable Should not Exist & variable should exist
Variable Should not Exist variable should exist
- 棒谷科技java岗笔试题与初试题
选择题 1.银行家算法的作用 2.docker镜像结构 3.docker的默认网络模式 4.spring的动态代理效率比较 5.springboot默认的json 6.springboot多profi ...
- Oracle 11G Client 客户端安装步骤(图文详解)
http://www.cnblogs.com/jiguixin/archive/2011/09/09/2172672.html 下载地址: http://download.oracle.com/otn ...
- MQTT-SN协议乱翻之小结篇
前言 这里简单做一些小结和对比,针对前面的协议翻译部分,一阶段的学习完结. MQTT-SN VS MQTT MQTT-SN基于MQTT原有语义,但做了很多的调整.比如: 一个CONNECT消息被拆分为 ...
- fastcgi_param解释
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#脚本文件请求的路径 fastcgi_param QUERY_STRI ...
- Microsoft Web Application Stress Tool 使用
为了测试数据的准备性,首先需要删除缓存和Cookies等临时文件.启动IE后打开“工具”菜单下的“Internet”选项命令,在打开的“Internet选项”窗口的“常规”选项卡中,单击“Intern ...
- 【BZOJ4429】[Nwerc2015] Elementary Math小学数学 最大流
[BZOJ4429][Nwerc2015] Elementary Math小学数学 Description Ellen给她的学生教小学数学.期末考试已经来临了.考试有n个题目,每一个题目学生们都要对一 ...
- linux 统计文件数量
查找当前目录下compose文件的数量 ls -lr | grep "compose" | wc -l