面向对象之元类介绍(未完待续)

标签(空格分隔): 元类介绍


元类介绍:

在正式介绍元类之前,大家储备一下知识:exec;

  • exec命令使用
    这个命令有三个参数:
    1.字符串形式的命令,(把字符串提取出来)
    2.全局作用域;(字典形式,如果不指定,默认使用globals())
    3.局部作用域,(字典形式,如果不指定默认locals)
g={'x':1,
'y':2}
l={}
exec("""
global x,m
x=10
m=100

z=3
""",g,l)
print(g)
#print(l)
  • exec就是一个函数的执行;这里大家记住,后边我们会用到;

python中一切皆是对象,对象可以怎么用?

1.都可以被引用;x=obj
2.第二点,都可以当做函数的参数传入;
3.都可以当做函数的返回值
4.都可以当做容器类型的元素;(就是盛多个值,例如字典,列表)

class Foo:#类也是对象
    pass
obj= Foo()
print(type(obj))
print(type(Foo))

执行结果:
<class main,Foo>
<class ‘type‘>

  • 元类的概念:
    向上述的例子可以发现:Foo也是一个对象,在python中一切都是对象,从这里可以看出:类的类,就是被称为元类:<class ‘type‘>


如下:是通过元类定义的一个chinese类:

  • 一句话:元类就是原始的类,就是类的类

原文地址:https://www.cnblogs.com/surewing/p/9775700.html

时间: 2024-10-07 18:28:46

面向对象之元类介绍(未完待续)的相关文章

面向对象之元类介绍

标签(空格分隔): 元类介绍 元类介绍: 在正式介绍元类之前,大家储备一下知识:exec; exec命令使用 这个命令有三个参数: 1.字符串形式的命令,(把字符串提取出来) 2.全局作用域:(字典形式,如果不指定,默认使用globals()) 3.局部作用域,(字典形式,如果不指定默认locals) g={'x':1, 'y':2} l={} exec(""" global x,m x=10 m=100 z=3 """,g,l) print(g

Python全栈之路----面向对象开发----元类介绍

储备知识exec,可以被当作函数来看待. 参数1:字符串形式的命令 参数2:全局作用域(字典形式),如果不指定默认就使用globals() 参数3:局部作用域(字典形式),如果不指定默认就使用locals() g = {'x':1, 'y':2} l = {} exec(''' global x,m x = 10 m = 100 z = 3 ''', g, l) python中一切皆对象,对象可以怎么用? 1.都可以被引用,x = obj 2.都可以当作函数的参数传入 3.都可以当作函数的返回值

java中的集合操作类(未完待续)

申明: 实习生的肤浅理解,如发现有错误之处,还望大牛们多多指点 废话 其实我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList<XXXXX>(); 但是我仅仅只是了解,list这个类是一个可变长用来存储的对象实例的类,我甚至觉得这个List对象可以理解成数组,但是却又与java中咱们正常理解的数组很多的不同,比如说,他的长度可以随着需要自动增长,比如说,实例化一个List类就和咱们声明数组的时候是不一样的! 今天的实习生活

AutoMapper介绍(未完待续、部分没实现)

实体间转换工具.其实也可以用Json来实现同名属性.异名属性(用JsonProperty指明)的自动转换 最新版本6.11 需要使用vs2013以上.vs2012下载新版 nuget会遇到问题.只能旧版. 1 using AutoMapper; 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Web; 6 using System.Web.Mvc; 7 8 namesp

脚本编辑$RANDOM 和 case语句 (笔记) 未完待续

$RANDOM 个人理解是一个用来生成随机数的一个变量 ,由此编写一个脚本 [[email protected] script]# cat random.sh #!/bin/bash # declare -i MAX=0 declare -i MIN=0 for I in `seq 1 10`; do MYRANDOM=$RANDOM [ $I -eq 1 ] && MIN=$RANDOM if [ $I -le 9 ]; then echo -n "$MYRANDOM,&quo

JavaWeb ajax编程(未完待续)

1.Ajax 1.1Ajax的定义 Ajax:(Asynchronous JavaScript And XML)指异步 JavaScript 及 XML. 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术,是基于JavaScript.XML.HTML.CSS新用法. Ajax:只刷新局部页面的技术 JavaScript:更新局部的网页 XML:一般用于请求数据和响应数据的封装 XMLHttpRequest对象:发送请求到服务器并获得返回结果 CSS:美化页面

[译]App Framework 2.1 (1)之 Quickstart (未完待续)

最近有移动App项目,选择了 Hybrid 的框架Cordova  和  App Framework 框架开发. 本来应该从配置循序渐进开始写的,但由于上班时间太忙,这段时间抽不出空来,只能根据心情和兴趣,想到哪写到哪,前面的部分以后慢慢补上. App Framework 前生是是叫 jqMobi 注意大家不要和 jQuery Mobile 混淆了,它们是两个不同的框架,一开始我还真混淆了0.01秒. 这里我先翻译一下Quickstart 部分,一是自己工作上用的上,二是也想顺便练练英文,最关键

[daily][optimize] 去吃面 (python类型转换函数引申的性能优化)(未完待续)

前天,20161012,到望京面试.第四个职位,终于进了二面.好么,结果人力安排完了面试时间竟然没有通知我,也没有收到短信邀请.如果没有短信邀请门口的保安大哥是不让我进去大厦的.然后,我在11号接到了面试官直接打来的电话,问我为啥还没到,我说没人通知我我不知道呀.结果我就直接被他邀请去以访客的身份参加面试了.不知道人力的姑娘是不是认识我,且和我有仇,终于可以报复了... 然后,我终于如约到了,面试官带着我去前台登记.前台的妹子更萌...认为我是面试官,面试官是才是来面试的.我气质真的那么合吗?

React v16-alpha 源码简读【未完待续】

一.物料准备 1.克隆react源码, github 地址:https://github.com/facebook/react.git 2.安装gulp 3.在react源码根目录下: $npm install $gulp default (建议使用node 6.0+) gulp将文件处理在根目录下的build文件夹中,打开build查看react的源码,结构清晰,引用路径明了 二.从生成 virtual dom 开始 react 生成一个组件有多种写法: es 5下:var Cp=React.