Объектно-ориентированное программирование на Python — классы, объекты и члены | Месяц тем Python

задняя часть Python
Объектно-ориентированное программирование на Python — классы, объекты и члены | Месяц тем Python

Эта статья участвует в "Месяце тем Python", подробнее см.Ссылка на мероприятие

Ниже представлена ​​простая программа на Python, которая создает класс с помощью одного метода.

# 一个简单的示例类
class Test:
	
	# 示例方法
	def fun(self):
		print("Hello")

# 驱动程序代码
obj = Test()
obj.fun()

вывод:

Hello

Как мы видели выше, мы создали новый класс, используя оператор класса и имя класса. Далее следует блок операторов с отступом, составляющих тело класса. В этом случае мы определили метод в классе.
Затем мы используем имя класса, за которым следует пара круглых скобок, чтобы создать объект/экземпляр этого класса.

Цель:

Объект — это сущность, с которой связано состояние и поведение. Это может быть любой объект реального мира, такой как мышь, клавиатура, стул, стол, ручка и т. д. Целые числа, строки, числа с плавающей запятой и даже массивы и словари являются объектами. Более конкретно, любое целое число или любая отдельная строка является объектом. Число 12 — это объект, строка «Hello, world» — это объект, список — это объект, который может содержать другие объекты, и так далее. Вы работали с объектами, возможно, даже не осознавая этого.

Класс:

Класс — это схема, определяющая переменные и методы (черты), общие для всех объектов определенного типа.

Пример: если Car является классом, Audi A6 является объектом класса Car. Все автомобили имеют схожие функции, такие как 4 колеса, 1 руль, окна, тормоза и т. д. Audi A6 (автомобильный объект) обладает всеми этими чертами.

self   

  1. Методы класса должны иметь дополнительный первый параметр в определении метода. Мы не присваивали значение этому параметру при вызове метода, Python предоставляет
  2. Если у нас есть метод, не принимающий параметров, то у нас все равно должен быть один параметр — self. См. fun() в простом примере выше.
  3. Это похоже на указатель this в C++ и ссылку this в Java.

Когда мы вызываем метод для этого объекта как myobject.method(arg1, arg2), он автоматически преобразуется Python в MyClass.method(myobject, arg1, arg2) — вот что такое self.

initметод 
initМетоды аналогичны конструкторам в C++ и Java. Он запускается после создания экземпляра объекта класса. Этот метод можно использовать для выполнения любой инициализации объекта.

# 带有 init 方法的示例类
class Person:

	# init 方法或构造函数
	def __init__(self, name):
		self.name = name

	# 样品方法
	def say_hi(self):
		print('你好, 我是博主',self.name)

p = Person('海拥')
p.say_hi()

вывод:

你好, 我是博主 海拥

Здесь мы будемinitМетоды определены так, чтобы принимать имена параметров (и обычно самого себя). .

Переменные класса и экземпляра (или свойства)  
В Python переменная экземпляра — это переменная, значение которой присваивается в конструкторе или методе с self. 
Переменная класса — это переменная, которой присваивается значение внутри класса.

# Python 程序显示在类声明中赋值的变量是类变量
# 方法和构造函数内部的变量是实例变量。

# 计算机科学学生类(Computer Science Student Class)
class CSStudent:

	# 类变量
	stream = 'cse'			

	# init 方法或构造函数
	def __init__(self, roll):

		# 实例变量
		self.roll = roll	

# CSStudent 类的对象
a = CSStudent(101)
b = CSStudent(102)

print(a.stream) # prints "cse"
print(b.stream) # prints "cse"
print(a.roll) # prints 101

# 也可以使用类名访问类变量
print(CSStudent.stream) # prints "cse"

вывод

image.png

Мы также можем определить переменные экземпляра в обычных методах.

# 展示我们可以在方法内部创建实例变量的 Python 程序

# 计算机科学学生类
class CSStudent:
	
	# 类变量
	stream = 'cse'	
	
	# init 方法或构造函数
	def __init__(self, roll):
		
		# Instance Variable
		self.roll = roll		

	# 添加实例变量
	def setAddress(self, address):
		self.address = address
	
	# 检索实例变量
	def getAddress(self):
		return self.address

# 驱动程序代码
a = CSStudent(101)
a.setAddress("Haiyong, UP")
print(a.getAddress())

вывод:

Haiyong,UP

Как создать пустой класс?  

Мы можем создать пустой класс, используя оператор pass в Python.

# 一个空的类
class Test:
	pass

Краткое резюме — числа Python

Эта статья представляет собой серию статей и будет обновляться в будущем. Я надеюсь, что эта серия уроков поможет вам, блогеры тоже учатся, если есть какие-то ошибки, пожалуйста, покритикуйте и исправьте их. Если вам понравилась эта статья и вы хотите увидеть больше, вы можете прочитать ее здесь (Github/Gitee) Вот сводка всего моего оригинального и рабочего исходного кода, следуйте за мной для получения дополнительной информации.

🧵 Другие статьи по теме

Рекомендуемые статьи из прошлого:

Если вы действительно узнали что-то новое из этой статьи, ставьте лайк, добавляйте в закладки и делитесь с друзьями. 🤗Наконец, не забудьте поддержать ❤ или 📑