Python 高级教程之类

Python 高级教程之类,第1张

  • 💂 个人网站:【 海拥 】【摸鱼小游戏 】
  • 🤟 风趣幽默的人工智能学习网站:👉人工智能
  • 💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】
  • 💬 便宜且实用的计算机相关书籍:👉进来逛逛

类是用户定义的蓝图或原型,从中创建对象。类提供了一种将数据和功能捆绑在一起的方法。创建一个新类会创建一种新类型的对象,允许创建该类型的新实例。每个类实例都可以附加属性以维护其状态。类实例也可以有方法(由它们的类定义)来修改它们的状态。

为了理解创建类的必要性,让我们考虑一个示例,假设您想要跟踪可能具有不同属性(如品种、年龄)的狗的数量。如果使用列表,第一个元素可以是狗的品种,而第二个元素可以代表它的年龄。假设有 100 只不同的狗,那么你怎么知道哪个元素应该是哪个?如果您想为这些狗添加其他属性怎么办?这缺乏组织,这是对课程的确切需求。

类创建一个用户定义的数据结构,其中包含自己的数据成员和成员函数,可以通过创建该类的实例来访问和使用。一个类就像一个对象的蓝图。

Python 类的一些要点:

  • 类由关键字 class 创建。
  • 属性是属于一个类的变量。
  • 属性始终是公共的,可以使用点 (.) 运算符进行访问。例如:Myclass.Myattribute

类定义语法:

class ClassName:
# 语句-1
.
.
.
# 语句-N

定义一个类

# 演示定义类的 Python3 程序

class Dog:
	pass

在上面的示例中,class 关键字表示您正在创建一个类,后跟该类的名称(在本例中为 Dog)。

类对象

对象是类的实例。一个类就像一个蓝图,而一个实例是具有实际值的类的副本。这不再是一个想法,它是一只真正的狗,就像一只七岁的哈巴狗。您可以拥有许多狗来创建许多不同的实例,但是如果没有类作为指导,您将迷失方向,不知道需要哪些信息。
一个对象包括:

  • 状态:由对象的属性表示。它还反映了对象的属性。
  • 行为:它由对象的方法表示。它还反映了一个对象对其他对象的响应。
  • 身份:它为一个对象赋予一个唯一的名称,并使一个对象能够与其他对象交互。
声明对象(也称为实例化类)

当一个类的对象被创建时,该类被称为实例化。所有实例共享类的属性和行为。但是这些属性的值,即状态对于每个对象都是唯一的。一个类可以有任意数量的实例。

例子:

声明一个对象
# 演示实例化类的 Python3 程序

class Dog:
	
	# 一个简单的类
	# attribute 属性
	attr1 = "哺乳动物"
	attr2 = "狗"

	# 示例方法
	def fun(self):
		print("我是", self.attr1)
		print("我是", self.attr2)

# 驱动程序代码
# 对象实例化
Rodger = Dog()

# 通过对象访问类属性和方法
print(Rodger.attr1)
Rodger.fun()

输出:

哺乳动物
我是哺乳动物
我是狗

在上面的示例中,创建了一个对象,它基本上是一只名叫 Rodger 的狗。这个类只有两个类属性告诉我们Rodger 是狗和哺乳动物。

self
  • 类方法在方法定义中必须有一个额外的第一个参数。当我们调用方法时,我们不给这个参数一个值,Python 提供了它。
  • 如果我们有一个不带参数的方法,那么我们仍然必须有一个参数。
  • 这类似于 C++ 中的 this 指针和 Java 中的 this 引用。

当我们将此对象的方法称为 myobject.method(arg1, arg2) 时,Python 会自动将 this 转换为 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()

输出:

你好,我的名字是海拥
类和实例变量

实例变量用于数据,对每个实例都是唯一的,类变量用于类的所有实例共享的属性和方法。实例变量是在构造函数或方法中使用 self 赋值的变量,而类变量是在类中赋值的变量。

使用构造函数定义实例变量。

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

	# 类变量
	animal = '狗'			

	# init 方法或构造函数
	def __init__(self, breed, color):
	
		# 实例变量
		self.breed = breed
		self.color = color	
	
# Dog 类的对象
Rodger = Dog("二哈", "黑白")
Buzo = Dog("金毛", "黄色")

print('大白详细信息:')
print('大白是一只', Rodger.animal)
print('品种: ', Rodger.breed)
print('颜色: ', Rodger.color)

print('\n大黄详细信息:')
print('大黄是一只', Buzo.animal)
print('品种: ', Buzo.breed)
print('颜色: ', Buzo.color)

# 类变量也可以使用类名访问
print("\n使用类名访问类变量")
print(Dog.animal)	

输出:

大白详细信息:
大白是一只狗
品种:二哈
颜色:棕色

大黄详细信息:
Buzo 是一只狗
品种:金毛
颜色:黑色
使用类名访问类变量

使用普通方法定义实例变量。

# Python3 程序显示我们可以在方法中创建实例变量
	
# Dog 类
class Dog:
	
	# 类变量
	animal = 'dog'	
	
	# init 方法或构造函数
	def __init__(self, breed):
		
		# 实例变量
		self.breed = breed			

	# 添加实例变量
	def setColor(self, color):
		self.color = color
	
	# 检索实例变量
	def getColor(self):	
		return self.color

# 驱动程序代码
Rodger = Dog("金毛")
Rodger.setColor("黄色")
print(Rodger.getColor())

输出:

黄色

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/798393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存