Что такое self в Python: примеры из реального мира
Что такое self в Python: примеры из реального мира
В программировании вы можете столкнуться с ситуациями, когда переменная не имеет значения. Эти экземпляры обычно представлены специальным значением, известным как null. Многие языки программирования, такие как C, Java, JavaScript и PHP, имеют встроенные нулевые значения, но Python использует несколько иной подход к представлению нулевых переменных.
В Python эквивалентом null является None. Это специальная константа в Python, которая представляет отсутствие значения или нулевое значение. Это экземпляр собственного типа данных — NoneType. Это не то же самое, что 0, False или пустая строка, поскольку это собственный тип данных, который не представляет ни значения, ни объекта.
Если вы изучаете Python, важно понимать концепцию None в Python. Он предоставляет вам средства для создания эффективного кода, который обрабатывает крайние случаи. Изучая программирование на Python, вы столкнетесь с различными сценариями, в которых None оказывается необходимым.
В этой статье мы рассмотрим, что такое нуль или отсутствие в Python. Мы рассмотрим примеры и варианты использования, чтобы помочь вам закрепить концепцию нулевых значений. Но сначала давайте разберемся с концепцией значений None или Null в Python.
Оглавление
Что такое Null в Python?
Чтобы понять null в Python, вам нужно понять следующие две концепции:
Разница между None и Null
Нет
1. Разница между None и Null
Null во многих языках программирования используется для обозначения пустого указателя или неизвестного значения. Вы можете определить нулевое значение как 0 на этих языках.
Однако в Python вместо null вы используете ключевое слово None для определения пустых объектов и переменных. None служит тем же целям, что и null в других языках. Но это отдельный объект, и он не определяется как 0 или любое другое значение.
2. НетТип
В Python None — это уникальный тип структуры данных, относящийся к типу NoneType. Это первоклассный гражданин, то есть вы можете назначать его переменным. Вы также можете передать его в качестве аргумента и вернуть в качестве результата.
Когда вы присваиваете переменной значение None, она становится объектом NoneType. None не эквивалентен пустой строке, логическому значению False или числовому значению 0. Это просто означает нулевую переменную или ничего.
Теперь, когда вы понимаете терминологию, связанную с none, давайте продолжим и посмотрим, как вы можете использовать None для разных случаев использования!
Как использовать None в Python
В Python вы можете использовать None для ряда случаев использования. В этом разделе мы рассмотрим 4 важных варианта использования None в Python.
В частности, мы рассмотрим следующие варианты использования:
Присвоение None переменным
Использование None в качестве параметра по умолчанию
Проверка на None с оператором идентификации
Обработка пропущенных значений
Давайте погрузимся в это!
1. Присвоение переменной None
Вы можете присвоить None переменным, чтобы указать на отсутствие значения.
Например:
x = None
None здесь означает, что значение x отсутствует или допустимое значение еще не определено.
2. Использование None в качестве параметра по умолчанию
Вы также можете использовать None в качестве значения параметра по умолчанию для определения функций. Это полезно, когда вы хотите разрешить необязательные аргументы для параметров по умолчанию в ваших функциях.
В следующем коде показано, как использовать None в качестве параметра по умолчанию:
def greet(name=None):
if name is None:
print("Hello, World!")
else:
print(f"Hello, {name}!")
# Call the function without providing a name
greet()
# Call the function with a name
greet("Alice")
Когда вы запускаете этот код, он печатает «Hello, World!» когда вы вызываете приветствие() без каких-либо аргументов. Но когда вы вызываетеgreet() с аргументом, например,greet("Alice"), он печатает "Hello, Alice!". Это позволяет функции иметь необязательные аргументы.
3. Проверка отсутствия с оператором идентификации
Вы можете использовать оператор is identity, чтобы проверить, является ли переменная None. Это позволяет вам сравнить, ссылаются ли две переменные на один и тот же объект.
Ниже приведен пример, показывающий, как использовать оператор идентификации:
# Define a variable with no value
var1 = None
# Define a variable with a value
var2 = "Hello, World!"
# Check if var1 is None
if var1 is None:
print("var1 is None")
else:
print("var1 is not None")
# Check if var2 is None
if var2 is None:
print("var2 is None")
else:
print("var2 is not None")
В этом коде var1 is None вернет True, поскольку var1 было присвоено значение None. С другой стороны, var2 is None вернет False, поскольку var2 имеет строковое значение.
Вывод скрипта приведен ниже:
4. Обработка пропущенных значений
Вы также можете столкнуться с данными с отсутствующими значениями. Вы можете представить эти отсутствующие значения с помощью None и соответствующим образом обработать их.
Ниже приведен пример работы со списком чисел:
# Define a list of data with some missing values
data = [1, 2, 3, None, 5, None, 7, 8, None, 10]
def calculate_average(data):
# Filter out None values using list comprehension
valid_data = [value for value in data if value is not None]
# Calculate average if valid_data is not empty
average = sum(valid_data) / len(valid_data) if valid_data else None
return average
# Call the function and print the result
print(calculate_average(data))
Эта функция вычисляет сумму всех значений, отличных от None, в списке и делит ее на количество значений, отличных от None. Если все значения в списке равны None, функция возвращает None.
Результат приведен ниже:
Используя None и различные методы, упомянутые выше, вы можете эффективно обрабатывать отсутствующие значения в Python.
Чтобы узнать больше об обработке отсутствующих значений в Python, посмотрите следующее видео:
Еще несколько вариантов использования None в Python
Помимо вариантов использования, описанных в разделе выше, существуют и другие варианты использования None. Эти варианты использования не часто используются, но их полезно знать, и они полезны в некоторых сценариях.
В этом разделе мы рассмотрим следующие 3 варианта использования None в Python:
Использование None в операторах return
Использование None в качестве флагов
Использование None для пользовательских объектов
Давайте погрузимся в это!
1. Использование None в качестве операторов возврата
Вы можете использовать None в операторах return, особенно когда функция завершает свое выполнение, не найдя определенного результата.
Например, функция, которая ищет элемент в списке, может вернуть None, если элемент не найден. Следующий код демонстрирует использование None в качестве возвращаемого значения:
# Define a list
numbers = [10, 20, 30, 40, 50]
def find_in_list(lst, target):
for i, value in enumerate(lst):
if value == target:
return i
return None
# Search for a number in the list
print(find_in_list(numbers, 30))
print(find_in_list(numbers, 60))
В этом коде функция find_in_list выполняет итерацию по входному списку lst . Если он находит целевое значение, он возвращает индекс этого значения. Если он не находит целевое значение после проверки всего списка, он возвращает None.
Результат приведен ниже:
2. Использование None в качестве флагов
Вы также можете использовать None в качестве флага для указания состояния переменной. Например, вы можете использовать его, чтобы отметить, является ли значение неинициализированным, или для отслеживания специального условия в программе.
Ниже приведен пример того, как вы можете использовать None в качестве флага:
def find_first_even_number(numbers):
# Initialize the first_even_number to None
first_even_number = None
# Iterate over the list of numbers
for number in numbers:
# If we find an even number and first_even_number is still None
if number % 2 == 0 and first_even_number is None:
first_even_number = number
break
return first_even_number
numbers = [1, 3, 5, 7, 8, 10]
# Call the function and print the result
print(find_first_even_number(numbers)) # Outputs: 8
В этом коде None используется как флаг, указывающий, что мы еще не нашли четное число в списке.
Если first_even_number по-прежнему None после цикла , это означает, что в списке не было четных чисел.
If first_even_number is not None, it contains the first even number from the list.
3. Using None for Custom Objects
You can use None for custom, user-defined objects, as well. When dealing with attributes, properties, or methods that return other objects, you might use None to signify the absence of a value or a relationship.
The following example demonstrates how you can use None for user-defined objects:
class Person:
def __init__(self, name):
self.name = name
self.best_friend = None
def set_best_friend(self, person):
self.best_friend = person
def get_best_friend_name(self):
if self.best_friend is not None:
return self.best_friend.name
else:
return None
# Create two Person objects
alice = Person('Alice')
bob = Person('Bob')
# Alice's best friend is Bob
alice.set_best_friend(bob)
print(alice.get_best_friend_name())
# Charlie doesn't have a best friend
charlie = Person('Charlie')
print(charlie.get_best_friend_name())
In this example, None is used as a default value for the best_friend attribute of a Person instance. The get_best_friend_name method returns the name of the best friend if there is one, and None if there isn’t.
The above code will output the following:
Special Functions and Techniques for Null Object
Теперь мы обсудим некоторые специальные функции и методы, которые вы можете использовать в отношении NoneType и обработки нулевых значений. Мы рассмотрим два основных подраздела:
Идентификационная функция
Функция Getattr
1. Идентификационная функция
Функция id() в Python — это встроенная функция , которая возвращает идентификатор объекта. Эта идентичность представляет собой уникальное и постоянное целое число, присваиваемое объекту в течение его жизни.
Это позволяет различать объекты с разными адресами памяти. Функция особенно полезна при работе с объектами NoneType, так как ее можно использовать для проверки наличия None в переменных или выражениях.
Ниже приведен пример использования функции id() :
a = None
b = None
c = 42
print(id(a)) # Output: some unique integer representing None
print(id(b)) # Output: same integer as id(a)
print(id(c)) # Output: different integer from id(a) and id(b)
Вывод этого кода приведен ниже:
Поскольку None является гражданином первого класса в Python, он имеет свою собственную уникальную идентичность. Это означает, что вы можете использовать функцию id() для сравнения переменных с None, используя их идентификаторы:
if id(a) == id(None):
print("a is None")
Результат приведен ниже:
2. Функция Getattr
Функция getattr() — это еще одна встроенная функция Python, позволяющая обращаться к атрибутам объекта по имени.
Получив объект и строку, getattr() возвращает значение именованного атрибута или объект None, если атрибут не существует.
Это может быть полезно для вас при обработке нулевых значений, особенно в случаях, когда вам нужно получить доступ к атрибутам, которые могут отсутствовать.
Ниже приведен пример использования функции getattr() :
class ExampleClass:
def __init__(self, x, y):
self.x = x
self.y = y
example_obj = ExampleClass(3, 4)
# Access attribute using getattr
print(getattr(example_obj, "x")) # Output: 3
print(getattr(example_obj, "z", None)) # Output: None
В приведенном выше примере мы используем getattr() для доступа к атрибуту x и пытаемся получить доступ к несуществующему атрибуту z.
Предоставляя значение по умолчанию None, мы предотвращаем AttributeError и вместо этого получаем объект None.
В результате эта функция обеспечивает безопасный доступ к атрибутам даже при наличии пустых объектов или отсутствующих атрибутов.
Вывод этого кода приведен ниже:
Сравнение Null в других языках программирования
В начале этой статьи мы провели краткое сравнение Null в Python и Null в других языках программирования.
В этом разделе мы продолжим эту тему и сравним Null в других популярных языках программирования с Null в Python. Это поможет вам лучше понять концепцию None в Python, если у вас другой опыт программирования.
Давайте погрузимся в это!
1. Нуль в Java
В Java ключевое слово null представляет собой ссылку, которая не указывает ни на какой объект или значение. Он используется для обозначения отсутствия значения и часто используется как значение по умолчанию для ссылок на объекты.
Например:
String myString = null; // Declare a String object with a null reference
Null в Java отличается от None в Python. Null представляет отсутствие объекта, тогда как None является фактическим объектом NoneType.
2. Нуль в C
В языке программирования C null представлен нулевым указателем, который указывает на неинициализированный или пустой указатель. Нулевой указатель часто представляется целочисленным значением 0.
Ниже приведен пример использования нулевого указателя в C:
int *myPointer = NULL; // Declare an integer pointer with a null reference
Null в C не связан с конкретным типом данных. Он служит заполнителем для неинициализированных или пустых указателей.
3. Нуль в PHP
В PHP null представляет собой переменную без значения или без ссылки. Как и в других языках, null используется для обозначения неинициализированных или пустых переменных.
Ниже приведен пример Null в PHP:
$myVar = NULL; // Declare a variable with a null reference
Нуль в PHP — это не объект определенного типа данных, а скорее специальная константа, представляющая отсутствие значения.
Последние мысли
В вашем путешествии в качестве программиста Python очень важно узнать о значениях None. Это уникальная функция, которая служит способом Python сказать «ничего здесь».
Это важно для представления отсутствия значения. Поняв и правильно используя None, вы сможете создавать более гибкие функции с необязательными аргументами и эффективно обрабатывать отсутствующие данные.
Кроме того, значения None позволяют вашим функциям четко сообщать, когда что-то отсутствует или когда условие не выполнено. Кроме того, понимание None имеет решающее значение при работе с базами данных, пользовательскими объектами или когда вам нужно инициализировать переменные.
Это руководство по значениям None в Python демонстрирует некоторые важные сценарии, в которых вы захотите использовать объект None в своем коде.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.
Что такое шлюз LuckyTemplates? Все, что тебе нужно знать