13.01python语言基础(元类)

python中的类,类同样是一种对象,只要使用关键字class,python解释器执行的时候就会创建一个对象

class Test(object):

  pass

test = Test()

print(test)

判断一个对象是否在某个类中--->

hasattr(obj,str)

class Test(object):

  pass

test = Test()

print(test)

print(Test)

def info(o):

  print(o)

可以将类作为参数传递给函数

info(test)

可以为类添加新的属性:

class Test(object):    passtest = Test()print(test)print(Test)

def info(o):    print(o)

info(test)

print(hasattr(Test,‘new attribute‘))Test.new_attribute = ‘haha‘print(hasattr(Test,‘new_attribute‘))print(Test.new_attribute)

运行结果:

<__main__.Test object at 0x00000198F952C198>
<class ‘__main__.Test‘>
<__main__.Test object at 0x00000198F952C198>
False
True
haha

注:判断一个对象是否在类中,使用hasattr,格式hasattr(obj,str)

13.02python语言基础(动态创建类)

动态创建类

def choose_name(name):

  if name == 'haha'

    class haha(object):

      pass

    return haha

  else:

    class heihei(object):

      pass

    return heihei

my_class = choose_name('haha')

print(my_class)

print(my_class())

原文地址:https://www.cnblogs.com/mylove-821717420/p/9597258.html

时间: 2024-10-19 17:13:31

13.01python语言基础(元类)的相关文章

2018.6.13 Java语言基础复习总结

Java语言基础与面向对象编程实践 第一章 初识Java 1.1机器语言 机器语言是指一台计算机全部的指令集合.机器语言室友0和1组成的二进制数,是一串串由0和1组成的指令序列,可将这些指令序列交给计算机执行. 1.2汇编语言 负责把汇编语言翻译成二进制的机器语言,这种翻译程序就是汇编程序. 1.3高级语言 1954年第一个完全脱离机器硬件的高级语言FORTRAN诞生 1.3.1C语言 是一种计算机程序设计语言,它既有高级语言的特点,又具有汇编语言的特点. 1.3.2 C++语言 是具有面向对象

C++语言基础(3)-类和对象

类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量:创建对象的过程也叫类的实例化.每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数. 一.类的定义 一个简单的类的定义: class Student{ public: //成员变量 char *name; int age; float score; //成员函数 void say(){ cout<<name<<"的年龄是"<<age<<&qu

13 Java语言基础使用变量的注意事项

作用域问题 同一区域不能使用相同的变量名 初始化值问题 局部变量在使用之前必须赋值 一条语句可以定义几个变量 1 class Demo1_DataType { 2 public static void main{ 3 int x =10; 4 int x = 20; //同一区域不能有相同的变量名,不会覆盖,会报错 5 6 System.out.println(x); 7 8 int a,b,c,d,e; 9 a = 10; 10 b = 20; // 可以声明不赋值,但是赋值前一定要先声明 1

Lua语言基础汇总(8) -- Lua中的元表与元方法

前言 元表对应的英文是metatable,元方法是metamethod.我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了“+”符号,就可以进行类的加法运算.在Lua中也有这个道理,两个table类型的变量,你是无法直接进行“+”操作的,如果你定义了一个指定的函数,就可以进行了.那本文就是主要讲的是如何定义这个指定的函数,这个指定的函数是什么?希望对学习Lua的朋友有帮助. Lua是怎么做的? 通常,Lua中的每个值都有一套预定义的操作集合,比如数字是可以相加的,字符串是可以连接

Lua语言基础汇总(13)-- Lua中一些常用的库

前言 这篇文章将会来一些比较轻松的内容,就是简单的介绍一下Lua中几个常用的库.简单的说就是几个API的介绍.所以说,看起来比较容易,也没有多大的分量.就是纯粹的总结.使用库就是为了方便我们的开发,提高开发效率,同时也能保证代码的质量.希望大家以后也不要重复造轮子了. 数学库 数学库(math)由一组标准的数学函数构成.这里主要介绍几个常用的函数,其它的大家可以自行百度解决. 1. 三角函数(sin,cos,tan……) 所有的三角函数都使用弧度单位,可以用函数deg(角度)和rad(弧度)来转

Python基础- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)

标签: python对象 2017-07-01 16:28 79人阅读 评论(0) 收藏 举报  分类: python(11)  版权声明:本文为广大朋友交流学习,如有纰漏望不吝赐教,若存在版权侵犯请及时与我联系 目录(?)[+] 一.初识类和对象 在python3中类型就是类 先定义类在产生相对应的对象,也就是现有了概念再有了实体 class Garen: camp = 'Demacia' def attack(self): print('attack') 1.如何使用类 在python3:

OC基础(十)类的本质及isa指针和元类的简单介绍

一.类的基本概念: 1.类其实也是一个对象, 这个对象会在这个类第一次被使用的时候创建 2.只要有了类对象, 将来就可以通过类对象来创建实例对象 3.实例对象中有一个isa指针, 指向创建自己的类对象 4.类对象中保存了当前对象所有的对象方法 5.当给一个实例对象发送消息的时候, 会根据实例对象中的isa指针去对应的类对象中查找 6.所有类对象的继承关系就是元类对象的继承关系 二.isa指针 1.每一个对象都包含一个isa指针.这个指针指向当前对象所属的类. 2.[d bark];表示给d所指向

Python基础(九) type元类

python元类: type()   元类是python高阶语法. 合理的使用可以减少大量重复性的代码. 元类使用代码: 元类关键字type()  ;元类有三个参数 原型:type('Class',(object,),dict(hello=fun())) 1.class 自定义的类名称 2.(object,)是继承类,的元组,如果只有一个就写这种形势(object,):多个(object,xxxx,) 3.dict(hello=fun())  第三个参数,是一个字典等号左是 自定义的方法名,右侧

python全栈开发基础【补充】metaclass(元类)

一.创建类的执行流程 二.元类的认识 什么是元类呢?在Python3中继承type的就是元类 二.元类的示例 # 方式一 class MyType(type): '''继承type的就是元类''' def __init__(self,*args,**kwargs): print("MyType创建的对象",self) #Foo super(MyType,self).__init__(*args,**kwargs) def __call__(self, *args, **kwargs):