多数のクラスに同じ特性を持たせたいのですが、どうすれば追加できますか?これはテンプレートですか?このテンプレートからクラスのグループを作成すれば問題ありませんか?次にメタクラスが必要になります。 Huo Huo》
メタクラスを定義します (単なるクラスのテンプレートです! あまり考えすぎないでください。ただし、これはオブジェクト レベルではなくクラス レベルであることも覚えておいてください!):
class MyMeta(type):
def __init__(cls,name,bases,dic) :
print cls. __name__
print name
def __str__(cls):return '美しいクラス %s'%cls.__name__
これは何ですか?ああ、これはメタクラスですね。クラステンプレートです。
どこで使用されますか?これは、このクラスのテンプレートとしてクラスで使用する必要があります。
はどのような役割を果たしますか?テンプレートはいくつかの共通の機能を提供します。
このクラスはどのような機能を提供しますか? 2つの特徴、1.クラスが定義された後、クラスの名前 (__init__) を出力します。 2.印刷クラスの形式 (__str__)。
どのように動作するのでしょうか? インタプリタを開き、上記のコードを入力して開始します:
入力:
class MyClass(object):
__metaclass__ = MyMeta
Enter キーを押してクラス定義を終了すると、出力は次のようになります:
MyClass
MyClass
わかりました、ほほう!初期化するのはオブジェクトではなくクラスであることがわかりました。 ! ! ! !これが最初の特徴です。
2 番目:
入力:
print MyClass
出力:
美しいクラス MyClass
ああ、その通りです。 、予想通りでした! ! ! ! ! ! ! !もちろん、クラスを好きなようにカスタマイズすることもできます。 !
########################################### # #####################################
シングルトン パターンの下に実装してみましょう(Woodpecker コミュニティから):
シングルトン メタクラス:
class Singleton(type):
def __init__(cls,name,bases,dic):
super(Singleton,cls).__init__(name,bases,dic)
cls.instance = なし
def __call__(cls,*args,**kwargs):
cls.instance が None の場合:
cls.instance = super(Singleton,cls).__call__(*args,**kwargs)
return cls.instance
非常にシンプルなデザインパターンなので、何が起こっているのか理解できると思います。
class MyClass(object):
__metaclass__ = Singleton
def __init__( self,arg):
self.arg = arg
Singleton メタクラスを使用するクラス。
インスタンスは 1 つだけですか? ?私たちはそれを見ることしかできません。鄧小僧はこう言いました。「実践こそが真実を試す唯一の基準だ」。 - エッセンス! !
>>> my1 = MyClass("hello")
>>> my2 = MyClass("world")
>>> my1 は my2
True
>>> my1.arg
>>> my2.arg
'hello'
my2 を作成しようとして失敗しましたが、これは成功したことを証明しています。
実際、メタクラスはあまり使われないので理解しておきましょう。ほほー! !

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック



