โน๏ธ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0.2 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://codenote.mohsenjalali.ir/python/metaclass/ |
| Last Crawled | 2026-04-05 10:46:09 (5 days ago) |
| First Indexed | 2025-04-26 01:56:52 (11 months ago) |
| HTTP Status Code | 200 |
| Meta Title | Metaclasses In Python ยท Hi Mohsen save your notes |
| Meta Description | null |
| Meta Canonical | null |
| Boilerpipe Text | In python everythings are object and classes are also object. A metaclass in Python is a class of a class that defines how a class behaves. A class is itself an instance of a metaclass.
In the below figure we can find how class definition occur.
python
class
CustomMeta
(
type
)
:
@
classmethod
def
__prepare__
(
mcs
,
name
,
bases
,
**
kwargs
)
:
namespace
=
super
(
)
.
__prepare__
(
name
,
bases
)
print
(
mcs
,
name
,
bases
,
namespace
,
kwargs
)
return
namespace
def
__new__
(
mcs
,
name
,
bases
,
namespace
,
**
kwargs
)
:
cls
=
super
(
)
.
__new__
(
mcs
,
name
,
bases
,
namespace
)
print
(
cls
,
name
,
bases
,
namespace
,
kwargs
)
return
cls
def
__init__
(
cls
,
name
,
bases
,
namespace
,
**
kwargs
)
:
print
(
cls
,
name
,
bases
,
namespace
,
kwargs
)
super
(
)
.
__init__
(
name
,
bases
,
namespace
)
class
test
(
metaclass
=
CustomMeta
)
:
num
=
10
def
is_available
(
)
:
return
True
output
<class '__main__.CustomMeta'> test () {} {}
<class '__main__.test'> test () {'__module__': '__main__', '__qualname__': 'test', 'num': 10, 'is_available': <function test.is_available at 0x102ce3400>} {}
<class '__main__.test'> test () {'__module__': '__main__', '__qualname__': 'test', 'num': 10, 'is_available': <function test.is_available at 0x102ce3400>} {} |
| Markdown | /
๐
# Metaclasses In Python
<https://realpython.com/python-metaclasses/>
[python](https://codenote.mohsenjalali.ir/tag/python)
Table of contents
- [What is Metaclass?](https://codenote.mohsenjalali.ir/python/metaclass/#what-is-metaclass)
- [Default metaclass in python is type and each custom metaclass should inherited from type.](https://codenote.mohsenjalali.ir/python/metaclass/#default-metaclass-in-python-is-type-and-each-custom-metaclass-should-inherited-from-type)
# What is Metaclass?
In python everythings are object and classes are also object. A metaclass in Python is a class of a class that defines how a class behaves. A class is itself an instance of a metaclass.
In the below figure we can find how class definition occur. 
## Default metaclass in python is `type` and each custom metaclass should inherited from `type`.
python
Copy
```
class CustomMeta(type):@classmethoddef __prepare__(mcs, name, bases, **kwargs):namespace = super().__prepare__(name, bases)print(mcs,name,bases,namespace, kwargs)return namespacedef __new__(mcs, name, bases, namespace, **kwargs):cls = super().__new__(mcs, name, bases, namespace)print(cls,name,bases,namespace, kwargs)return clsdef __init__(cls, name, bases, namespace, **kwargs):print(cls,name,bases,namespace, kwargs)super().__init__(name, bases, namespace)class test(metaclass=CustomMeta):num= 10def is_available():return True
```
output
Copy
```
<class '__main__.CustomMeta'> test () {} {}<class '__main__.test'> test () {'__module__': '__main__', '__qualname__': 'test', 'num': 10, 'is_available': <function test.is_available at 0x102ce3400>} {}<class '__main__.test'> test () {'__module__': '__main__', '__qualname__': 'test', 'num': 10, 'is_available': <function test.is_available at 0x102ce3400>} {}
```
[Edit this page](https://github.com/itsmohsenjalali/mohsencodenote/tree/master/code-notes/python/metaclass.md)

Hi Mohsen save your notes
[All Notes](https://codenote.mohsenjalali.ir/)
Tags
[AWS](https://codenote.mohsenjalali.ir/tag/aws)
[cleancode](https://codenote.mohsenjalali.ir/tag/cleancode)
[Database](https://codenote.mohsenjalali.ir/tag/database)
[design pattern](https://codenote.mohsenjalali.ir/tag/design-pattern)
[Docker](https://codenote.mohsenjalali.ir/tag/docker)
[Error](https://codenote.mohsenjalali.ir/tag/error)
[Heroku](https://codenote.mohsenjalali.ir/tag/heroku)
[Infrastructure](https://codenote.mohsenjalali.ir/tag/infrastructure)
[Machine Learning](https://codenote.mohsenjalali.ir/tag/machine-learning)
[Microservice](https://codenote.mohsenjalali.ir/tag/microservice)
[MongoDB](https://codenote.mohsenjalali.ir/tag/mongo-db)
[NestJS](https://codenote.mohsenjalali.ir/tag/nest-js)
[nginx](https://codenote.mohsenjalali.ir/tag/nginx)
[NodeJS](https://codenote.mohsenjalali.ir/tag/node-js)
[Posgresql](https://codenote.mohsenjalali.ir/tag/posgresql)
[Putty](https://codenote.mohsenjalali.ir/tag/putty)
[python](https://codenote.mohsenjalali.ir/tag/python)
[python package](https://codenote.mohsenjalali.ir/tag/python-package)
[sever](https://codenote.mohsenjalali.ir/tag/sever) |
| Readable Markdown | In python everythings are object and classes are also object. A metaclass in Python is a class of a class that defines how a class behaves. A class is itself an instance of a metaclass.
In the below figure we can find how class definition occur. 
python
```
class CustomMeta(type):@classmethoddef __prepare__(mcs, name, bases, **kwargs):namespace = super().__prepare__(name, bases)print(mcs,name,bases,namespace, kwargs)return namespacedef __new__(mcs, name, bases, namespace, **kwargs):cls = super().__new__(mcs, name, bases, namespace)print(cls,name,bases,namespace, kwargs)return clsdef __init__(cls, name, bases, namespace, **kwargs):print(cls,name,bases,namespace, kwargs)super().__init__(name, bases, namespace)class test(metaclass=CustomMeta):num= 10def is_available():return True
```
output
```
<class '__main__.CustomMeta'> test () {} {}<class '__main__.test'> test () {'__module__': '__main__', '__qualname__': 'test', 'num': 10, 'is_available': <function test.is_available at 0x102ce3400>} {}<class '__main__.test'> test () {'__module__': '__main__', '__qualname__': 'test', 'num': 10, 'is_available': <function test.is_available at 0x102ce3400>} {}
``` |
| Shard | 103 (laksa) |
| Root Hash | 1560123154460223703 |
| Unparsed URL | ir,mohsenjalali!codenote,/python/metaclass/ s443 |