python 2 Dec 11 - Dec 14

Dec 11

08.05 special method 特殊方法

Python 使用 __ 开头的名字来定义特殊的方法和属性,它们有:
- __init__() : 构造方法
- __repr__()
- __str__()
- __call__()
- __iter__()
- __add__()
- __sub__()
- __mul__()
- __rmul__()
- __class__
- __name__

事实上,__new__()才是真正产生新对象的方法,__init()__只是对对象进行了初始化,所以 leaf = Leaf()相当于:

my_new_leaf = Leaf.__new__(Leaf)
Leaf.__init__(my_new_leaf)
leaf = my_new_leaf

表示方法 repr() 和 str()

class Leaf(object):
    def __init__(self, mass_mg):
        self.mass_mg = mass_mg

    # 这样 mass_oz 就变成属性了
    @property
    def mass_oz(self):
        return self.mass_mg * 3.53e-5

这里mass_oz是一个只读不写的属性(注意是属性不是方法),而mass_mg是可读可写的属性。不过可以通过改变mass_mg的方法来改编mass_oz的值。(详细 def mass_oz

继承 inheritance

首先定义一个父类:

class Leaf(object):
    def __init__(self, color="green"):
        self.color = color
    def fall(self):
        print "Splat!"

定义一个子类继承自Leaf:(用class MapleLeaf(Leaf))

class MapleLeaf(Leaf):
    def change_color(self):
        if self.color == "green":
            self.color = "red"

如果想对父类的方法进行修改,只需要在子类中重定义这个类即可(重写)。

super()函数

     super(CurrentClassName, instance)
     #返回该类实例对应的父类对象。

公有,私有和特殊方法,属性

  • special 方法属性:即以__开头和结尾的方法和属性
  • 私有方法和属性:即以__开头,不过不是真正私有,而是可以调用的
  • 其他都是公有的方法和属性
  • 以__开头不以__结尾的属性是更加特殊的方法,调用方式也不同
class MyClass(object):
    def __init__(self):
        print "I'm special!"
    def _private(self):
        print "I'm private!"
    def public(self):
        print "I'm public!"
    def __really_special(self):
        print "I'm really special!"
m = MyClass()
#I'm special!

m.public()
#I'm public!

m._private()
#I'm private!

m._MyClass__really_special()
#I'm really special!
多重继承

多重继承,指的是一个类别可以同时多于一个父类继承行为与特征的功能。python支持多重继承的。

class Leaf(object):
    def __init__(self, color='green'):
        self.color = color
class ColorChangingLeaf(Leaf):
    def change(self, new_color='brown'):
        self.color = new_color
class DeciduousLeaf(Leaf):
    def fall(self):
        print "Plunk!"
class MapleLeaf(ColorChangingLeaf, DeciduousLeaf):
    pass

以上例子中,MapleLeaf就使用了多重继承,它可以使用两个父类的方法。

如果同时实现了不同的接口,那么最后使用的方法以继承的顺序为准,放在前面的优先继承。

class Leaf(object):
    def __init__(self, color='green'):
        self.color = color
class ColorChangingLeaf(Leaf):
    def change(self, new_color='brown'):
        self.color = new_color    
    def fall(self):
        print "Spalt!"
class DeciduousLeaf(Leaf):
    def fall(self):
        print "Plunk!"
class MapleLeaf(ColorChangingLeaf, DeciduousLeaf):
    pass

以上例子中,类ColorChangingLeaf和DeciduousLeaf都有方法”fall()”, 那就以第一个继承的ColorChangingLeaf为准。

更复杂的继承

class A(object):
    pass
class B(A):
    pass
class C(A):
    pass
class C1(C):
    pass
class B1(B):
    pass
class D(B1, C):
    pass

声明D的调用顺序:
[__main__.D, __main__.B1, __main__.B, __main__.C, __main__.A, object]

09 - 01. introduction and installation

Theano简介及其安装

Theano 是一个 Python 科学计算库,允许我们进行符号运算,并在 CPUGPU 上执行。
它最初由 Montreal 大学的机器学习研究者们所开发,用来进行机器学习的计算。
按照官网上的说明,它拥有以下几个方面的特点:
- 与 Numpy, Scipy 的紧密结合
- GPU 加速
- 高效的符号计算
- 速度和稳定性
- 动态生成 C 代码

[root@controller ~]# tail -n 100 /var/log/nova/nova-api.log 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 736, in fetch_token 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack cached = self._cache_get_hashes(token_hashes) 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 719, in _cache_get_hashes 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack cached = self._token_cache.get(token) 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/_cache.py", line 226, in get 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack with self._cache_pool.reserve() as cache: 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack File "/usr/lib64/python2.7/contextlib.py", line 17, in __enter__ 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack return self.gen.next() 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/_cache.py", line 78, in reserve 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack c = memcache.Client(self._memcached_servers, debug=0) 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/memcache.py", line 224, in __init__ 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack self.debug = debug 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/eventlet/corolocal.py", line 48, in __setattr__ 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack _patch(self) 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/eventlet/corolocal.py", line 38, in _patch 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack thrl.__init__(*args, **kw) 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/memcache.py", line 228, in __init__ 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack self.set_servers(servers) 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/memcache.py", line 307, in set_servers 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack for s in servers] 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/memcache.py", line 1357, in __init__ 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack raise ValueError('Unable to parse connection string: "%s"' % host) 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack ValueError: Unable to parse connection string: "controller:11211 auth_type = password" 2025-11-09 14:09:30.939 17854 ERROR nova.api.openstack 2025-11-09 14:09:30.952 17854 INFO nova.api.openstack [-] http://controller:8774/v2.1/os-services returned with HTTP 500 2025-11-09 14:09:30.961 17854 INFO nova.osapi_compute.wsgi.server [-] 192.168.231.71 "GET /v2.1/os-services HTTP/1.1" status: 500 len: 425 time: 0.0723500 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack [-] Caught error: Unable to parse connection string: "controller:11211 auth_type = password": ValueError: Unable to parse connection string: "controller:11211 auth_type = password" 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack Traceback (most recent call last): 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/api/openstack/__init__.py", line 94, in __call__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack return req.get_response(self.application) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1313, in send 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack application, catch_exc_info=False) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1277, in call_application 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack app_iter = application(self.environ, start_response) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 129, in __call__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack resp = self.call_func(req, *args, **kw) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 193, in call_func 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack return self.func(req, *args, **kwargs) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/api/openstack/requestlog.py", line 92, in __call__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack self._log_req(req, res, start) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack self.force_reraise() 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack six.reraise(self.type_, self.value, self.tb) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/api/openstack/requestlog.py", line 87, in __call__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack res = req.get_response(self.application) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1313, in send 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack application, catch_exc_info=False) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1277, in call_application 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack app_iter = application(self.environ, start_response) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 143, in __call__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack return resp(environ, start_response) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 129, in __call__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack resp = self.call_func(req, *args, **kw) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 193, in call_func 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack return self.func(req, *args, **kwargs) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/osprofiler/web.py", line 112, in __call__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack return request.get_response(self.application) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1313, in send 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack application, catch_exc_info=False) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1277, in call_application 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack app_iter = application(self.environ, start_response) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 129, in __call__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack resp = self.call_func(req, *args, **kw) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 193, in call_func 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack return self.func(req, *args, **kwargs) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 332, in __call__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack response = self.process_request(req) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 622, in process_request 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack resp = super(AuthProtocol, self).process_request(request) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 405, in process_request 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack allow_expired=allow_expired) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 437, in _do_fetch_token 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack data = self.fetch_token(token, **kwargs) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 736, in fetch_token 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack cached = self._cache_get_hashes(token_hashes) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 719, in _cache_get_hashes 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack cached = self._token_cache.get(token) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/_cache.py", line 226, in get 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack with self._cache_pool.reserve() as cache: 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib64/python2.7/contextlib.py", line 17, in __enter__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack return self.gen.next() 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/_cache.py", line 78, in reserve 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack c = memcache.Client(self._memcached_servers, debug=0) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/memcache.py", line 224, in __init__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack self.debug = debug 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/eventlet/corolocal.py", line 48, in __setattr__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack _patch(self) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/eventlet/corolocal.py", line 38, in _patch 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack thrl.__init__(*args, **kw) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/memcache.py", line 228, in __init__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack self.set_servers(servers) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/memcache.py", line 307, in set_servers 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack for s in servers] 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack File "/usr/lib/python2.7/site-packages/memcache.py", line 1357, in __init__ 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack raise ValueError('Unable to parse connection string: "%s"' % host) 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack ValueError: Unable to parse connection string: "controller:11211 auth_type = password" 2025-11-09 14:09:41.643 17853 ERROR nova.api.openstack 2025-11-09 14:09:41.645 17853 INFO nova.api.openstack [-] http://controller:8774/v2.1 returned with HTTP 500 2025-11-09 14:09:41.645 17853 INFO nova.osapi_compute.wsgi.server [-] 192.168.231.71 "GET /v2.1 HTTP/1.1" status: 500 len: 425 time: 0.0027082
11-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值