您的位置:首页 > 编程语言 > Python开发

Python Foundation - part three

2015-08-19 02:48 513 查看

Metaclasses in Python3

>>> class FooBar:
pass
>>> type(FooBar)
<class 'type'>
>>> f = FooBar()
>>> type(f)
<class '__main__.FooBar'>


>>> isinstance(foo, Foobar)
True
>>> isinstance(Foobar, type)
True


These examples mean instance is an instance of a class, a class is an instance of metaclass. and
type
is very useful metaclass in python as we have seen.

we can use
type
to create a class like this:

>>> MyClass = type('MyClass', (), {})
>>> MyClass
<class '__main__.MyClass'>


As type is a metaclass, so we can also create a custom metaclass that extens type

>>> class Meta(type):
...     pass


Difference between , _ and xx in Python

One underscore in the beginning

one underscore marks a private method or attribute

Two underscores in the beginning

Such methods with two underscores can not be overrided.

Two underscores in the beginning and in the end

Such methods are called magic methods which only python can call. Some useful methods are

__call__


__new__


__init__


__prepare__


These four methods are very important for instance and class creation.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: