Объекты Python

Все вPythonэто объект.

Даже значения основных примитивных типов (целые, строковые, с плавающей запятой ...) являются объектами. Списки - это объекты, кортежи, словари, все.

Объекты имеютатрибутыиметодыдоступ к которым можно получить с помощью точечного синтаксиса.

Например, попробуйте определить новую переменную типаint:

age = 8

ageтеперь имеет доступ к свойствам и методам, определенным для всехintобъекты.

Это включает, например, доступ к действительной и мнимой части этого числа:

print(age.real) # 8
print(age.imag) # 0

print(age.bit_length()) #4

# the bit_length() method returns the number of bits necessary to represent this number in binary notation

Переменная, содержащая значение списка, имеет доступ к другому набору методов:

items = [1, 2]
items.append(3)
items.pop()

Методы зависят от типа значения.

Вid()Глобальная функция, предоставляемая Python, позволяет вам проверять местоположение в памяти определенного объекта.

id(age) # 140170065725376

Ваше значение памяти изменится, я показываю это только в качестве примера

Если вы присвоите переменной другое значение, ее адрес изменится, потому что содержимое переменной было заменено другим значением, хранящимся в другом месте в памяти:

age = 8

print(id(age)) # 140535918671808

age = 9

print(id(age)) # 140535918671840

Но если вы измените объект с помощью его методов, адрес останется прежним:

items = [1, 2]

print(id(items)) # 140093713593920

items.append(3)

print(items) # [1, 2, 3] print(id(items)) # 140093713593920

Адрес изменяется только в том случае, если вы переназначаете переменной другое значение.

Некоторые объектыизменчивый, некоторыенеизменный. Это зависит от самого объекта. Если объект предоставляет методы для изменения своего содержимого, то он изменяемый. В противном случае он неизменен. Большинство типов, определенных Python, неизменяемы. Например,intнеизменен. Нет никаких способов изменить его значение. Если вы увеличиваете значение с помощью

age = 8
age = age + 1

#or

age += 1

и вы проверяете сid(age)вы обнаружите, чтоageуказывает на другое место в памяти. Исходное значение не изменилось, мы перешли на другое значение.


Больше руководств по питону: