Py学习  »  Python

Python 中的面向对象编程一之类、对象和成员|Python 主题月

海拥 • 2 年前 • 313 次点击  
阅读 58

Python 中的面向对象编程一之类、对象和成员|Python 主题月

本文正在参加「Python主题月」,详情查看 活动链接

下面是一个简单的 Python 程序,它使用单个方法创建一个类。

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

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

输出:

Hello
复制代码

正如我们在上面看到的,我们使用 class 语句和类的名称创建了一个新类。接下来是一个缩进的语句块,它们构成了类的主体。在这种情况下,我们在类中定义了一个方法。
接下来,我们使用类名后跟一对括号来创建该类的对象/实例。

目的:

对象是具有与其关联的状态和行为的实体。它可以是任何现实世界的对象,如鼠标、键盘、椅子、桌子、笔等。整数、字符串、浮点数、甚至数组和字典都是对象。更具体地说,任何单个整数或任何单个字符串都是一个对象。数字 12 是一个对象,字符串“Hello, world”是一个对象,一个列表是一个可以容纳其他对象的对象,等等。您一直在使用对象,甚至可能没有意识到。

Class:

类是一个蓝图,它定义了某种类型的所有对象共有的变量和方法(特征)。

示例:如果 Car 是一个类,则 Audi A6 是 Car 类的对象。所有汽车都具有类似的功能,例如 4 个轮子、1 个方向盘、窗户、刹车等。奥迪 A6(汽车对象)具有所有这些功能。

self   

  1. 类方法在方法定义中必须有一个额外的第一个参数。我们在调用方法的时候没有给这个参数赋值,Python提供了
  2. 如果我们有一个不带参数的方法,那么我们仍然必须有一个参数——self。请参见上面简单示例中的 fun()。
  3. 这类似于 C++ 中的 this 指针和 Java 中的 this 引用。

当我们将这个对象的一个​​方法调用为 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 方法定义为采用参数名称(以及通常的 self)。.

类和实例变量(或属性)  
在 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
复制代码

如何创建一个空类?  

我们可以使用Python 中的 pass 语句创建一个空类。

# 一个空的类
class Test:
	pass
复制代码

快速总结——Python 数字

本文章为系列文章,后续会继续更新。我希望本系列教程能够帮助到您,博主也在学习进行中,如有什么错误的地方还望批评指正。如果您喜欢这篇文章并有兴趣看到更多此类文章,可以看看这里(Github/Gitee) 这里汇总了我的全部原创及作品源码,关注我以查看更多信息。

🧵 更多相关文章

往日优秀文章推荐:

如果你真的从这篇文章中学到了一些新东西,喜欢它,收藏它并与你的小伙伴分享。🤗最后,不要忘了❤或📑支持一下哦

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/117607
 
313 次点击