D'une manière générale, le pooling est un mécanisme de pré-allocation, tel qu'un pool de mémoire, un pool de threads, etc., qui vise à réduire la surcharge causée par les demandes fréquentes de ressources pendant le fonctionnement, mais ce n'est évidemment pas ce que cela signifie, du moins d'après le contexte Regardez, le regroupement dans les notes fait référence à deux significations différentes, l'une concerne les attributs de la classe et l'autre la disposition de la mémoire des ressources constantes. 1) __name__ et __doc__ doivent faire référence aux attributs de la classe, et non aux attributs de l'objet instancié, tel que
from PyQt4.QtCore import *
print QString.__doc__
a = QString("hello")
print a.__doc__
Le __doc__ correspondant peut être indexé en utilisant la classe QString ici. Chaque objet instancié peut également accéder à cet attribut, mais cela économise évidemment des ressources pour stocker les données dans la classe et être partagées par tous les objets instanciés.
2) Personnellement, je pense que l'exemple de stagiaire n'est pas très bon. Ce stagiaire devrait être une méthode de String de Java (ou il a été introduit à l'origine par Java en référence à Python. Quant à savoir qui vient en premier, il n'y a pas de méthode. moyen de le savoir), voir
http://blog.sina.com.cn/s/blog_69dcd5ed0...
Python utilise id() pour marquer les informations d'adresse de chaque objet. Par conséquent, si les id() de deux objets sont différents, cela signifie que les adresses mémoire des deux objets sont différentes en termes de disposition de la mémoire (mais c'est le contenu peut être le même). Par conséquent, afin de rendre identique l'espace mémoire référencé par les objets avec le même contenu, utilisez le mot-clé intern pour atteindre cet objectif et économiser de la mémoire. Voir l'exemple ci-dessous
.
b = "abc"
a = "".join(["a", "b", "c"])
print a == b # 内容是一致的,b是直接引用一个字符串常量,但a是经过计算后、也就是在运行的过程中生成的
print id(a) == id(b) #但是id不一样
a = intern(a) #使用intern处理下,id一样了
print id(a) == id(b)
Il est recommandé de jeter un œil à l'analyse du code source Python Le pool d'objets est une technologie largement utilisée dans Python Si vous regardez directement le code source, vous aurez une compréhension plus claire.
Pour faire simple, les valeurs int comprises entre -128 et plus 127 sont globalement uniques, quel que soit le nombre de lectures et d'écritures du programme, ces objets communs sont conservés par l'interpréteur python pour économiser de la mémoire. les types ont des pools différents, caractères Pour les chaînes, les caractères simples couramment utilisés sont généralement placés dans le pool, et inn est une interface d'exploitation pour le pool.
D'une manière générale, le pooling est un mécanisme de pré-allocation, tel qu'un pool de mémoire, un pool de threads, etc., qui vise à réduire la surcharge causée par les demandes fréquentes de ressources pendant le fonctionnement, mais ce n'est évidemment pas ce que cela signifie, du moins d'après le contexte Regardez, le regroupement dans les notes fait référence à deux significations différentes, l'une concerne les attributs de la classe et l'autre la disposition de la mémoire des ressources constantes.
1) __name__ et __doc__ doivent faire référence aux attributs de la classe, et non aux attributs de l'objet instancié, tel que
Le __doc__ correspondant peut être indexé en utilisant la classe QString ici. Chaque objet instancié peut également accéder à cet attribut, mais cela économise évidemment des ressources pour stocker les données dans la classe et être partagées par tous les objets instanciés.
2) Personnellement, je pense que l'exemple de stagiaire n'est pas très bon. Ce stagiaire devrait être une méthode de String de Java (ou il a été introduit à l'origine par Java en référence à Python. Quant à savoir qui vient en premier, il n'y a pas de méthode. moyen de le savoir), voir
Python utilise id() pour marquer les informations d'adresse de chaque objet. Par conséquent, si les id() de deux objets sont différents, cela signifie que les adresses mémoire des deux objets sont différentes en termes de disposition de la mémoire (mais c'est le contenu peut être le même). Par conséquent, afin de rendre identique l'espace mémoire référencé par les objets avec le même contenu, utilisez le mot-clé intern pour atteindre cet objectif et économiser de la mémoire. Voir l'exemple ci-dessous
.Il est recommandé de jeter un œil à l'analyse du code source Python
Le pool d'objets est une technologie largement utilisée dans Python Si vous regardez directement le code source, vous aurez une compréhension plus claire.
Pour faire simple, les valeurs int comprises entre -128 et plus 127 sont globalement uniques, quel que soit le nombre de lectures et d'écritures du programme, ces objets communs sont conservés par l'interpréteur python pour économiser de la mémoire. les types ont des pools différents, caractères Pour les chaînes, les caractères simples couramment utilisés sont généralement placés dans le pool, et inn est une interface d'exploitation pour le pool.