zoukankan      html  css  js  c++  java
  • python核心

    元类:

    Python中所有的东西——都是对象。这包括整数、字符串、函数以及类。它们全部都是对象,而且它们都是从一个类创建而来,这个类就是type

    元类就是类的类,类作为一种对象,即可以在运行时动态的创建类:

    1.在函数里创建类

    def choose_class(name):
        if name == 'foo':
            class Foo(object):
                pass
                return Foo     # 返回的是类,不是类的实例
        else:
            class Bar(object):
                pass
                return Bar
    
    >>> MyClass = choose_class('foo')    #此时MyClass 为Foo
    >>> print MyClass              # 函数返回的是类
    <class '__main__'.Foo>
    >>> print MyClass()            # 通过这个类创建类实例,也就是对象 相当于 print( Foo())
    <__main__.Foo object at 0x89c6d4c>
    

    2.使用type创建类

    #type(类名, 由父类名称组成的元组(针对继承的情况,可以为空),包含属性的字典(名称和值))
    Foo = type('Foo', (), {'bar':True})
    
    #相当于如下代码
    >>> class Foo(object):
    …       bar = True
    



    动态语言:


    -动态语言:可以在运行的过程中,修改代码
    -静态语言:编译时已经确定好代码,运行过程中不能修改

    python是动态语言,运行时可以给类和类实例绑定属性和方法

    __slots__变量:限制类实例的属性

    __slots__ = ("name", "age")
    __slots__定义的属性仅对当前类实例起作用,对继承的类是不起作用的


  • 相关阅读:
    Linux 切换用户
    Java之.jdk安装-Linux
    Java之.jdk安装-Windows
    java注解生成xml和包含CDATA问题
    Spring学习—生成图片验证码
    java学习——java按值传递和按址传递
    温水中被煮熟的程序员-人生的思考
    mysql操作sql的小技巧
    java的classLoader分析与jettty的WebAppClassLoader
    深入Spring:自定义事务管理
  • 原文地址:https://www.cnblogs.com/shuai-long/p/9593374.html
Copyright © 2011-2022 走看看