В Python существует различие между функциями и связанными методами.
>>> def foo():
... print "foo"
...
>>> class A:
... def bar( self ):
... print "bar"
...
>>> a = A()
>>> foo
>>> a.bar
>
>>>
Связанные методы были "связаны" (как описательный) к экземпляру, и тот экземпляр будет передан как первый аргумент каждый раз, когда метод называют.
Callables, которые являются атрибутами класса (в противоположность экземпляру) все еще развязаны, тем не менее, таким образом, можно изменить определение класса каждый раз, когда Вы хотите:
>>> def fooFighters( self ):
... print "fooFighters"
...
>>> A.fooFighters = fooFighters
>>> a2 = A()
>>> a2.fooFighters
>
>>> a2.fooFighters()
fooFighters
Ранее определенные экземпляры обновляются также (как долго, поскольку они не переопределили атрибут сами):
>>> a.fooFighters()
fooFighters
проблема возникает, когда Вы хотите присоединить метод к единственному экземпляру:
>>> def barFighters( self ):
... print "barFighters"
...
>>> a.barFighters = barFighters
>>> a.barFighters()
Traceback (most recent call last):
File "", line 1, in
TypeError: barFighters() takes exactly 1 argument (0 given)
функция автоматически не связывается, когда она присоединяется непосредственно к экземпляру:
>>> a.barFighters
Для привязки его мы можем использовать функция MethodType в модуле типов :
>>> import types
>>> a.barFighters = types.MethodType( barFighters, a )
>>> a.barFighters
>
>>> a.barFighters()
barFighters
На этот раз другие экземпляры класса не были затронуты:
>>> a2.barFighters()
Traceback (most recent call last):
File "", line 1, in
AttributeError: A instance has no attribute 'barFighters'
[еще 1119] информация может быть найдена путем чтения [приблизительно 118] дескрипторов и программирование . метакласса
Для наблюдения, какую архитектуру (32bits=x86 или 64bits=x86_64) Вы установили:
arch
Для наблюдения общей RAM (в ГБ) программная часть системы обнаруживает:
free -h | awk 'NR>0{arr[$2]}END{for(i in arr) print i}' | grep G
Для наблюдения общей RAM (в гибибайте) аппаратная часть системы обнаруживает:
sudo lshw -class memory | grep GiB -m 1
Для наблюдения каждого слота RAM и то, что делает систему, видит установленный в каждом*:
sudo lshw -class memory | grep GiB
примечание: ГБ является гигабайтом (1000Ві байты, десятичная таблица), и гибибайт является гибибайтом (1024Ві байты, двоичная таблица). Нормально видеть точно, сколько RAM Вы имеете в гибибайте, и также нормально видеть немного меньше, чем "реальная" RAM, которую Вы имеете в ГБ. Просто говорящий.
<час>В этом примере, я использую свою собственную систему, который:
примечание: "талья" означает "размер" на французском языке.
Это должно помочь Вам сначала, я возвращусь, если я буду думать о чем-то еще. Надо надеяться, это будет реальный ответ, это - самое большее подсказка для проверки высказываний и что видит система.
При разгоне RAM, она не могла бы быть замечена правильно. Я должен был замедлить синхронизации немного для использования всей моей RAM. Надежда это помогает кому-то разгон.
Использование memtest, хотя, когда Вы разгоняетесь. Вы не хотите проблемы устойчивости.