写点什么

Python 面向对象编程:类和对象以及和 Java 的对比

  • 2024-09-04
    福建
  • 本文字数:1161 字

    阅读完需:约 4 分钟

在 Python 中,类和对象是面向对象编程的基础。


1 类的概念


类是一种创建对象的蓝图或模板。它定义了一组属性(变量)和方法(函数),这些属性和方法描述了该类的对象应该具有哪些特征和行为。


2 定义一个类


在 Python 中,你可以使用class关键字来定义一个类。例如,定义一个名为Person的简单类:


class Person:    def __init__(self, name, age):        self.name = name        self.age = age
def display(self): print(f"Name: {self.name}, Age: {self.age}")
复制代码


  • __init__方法是一个特殊的方法,称为构造器,用于初始化类的新实例。

  • self参数代表类的实例本身,并且是类任何方法的第一个参数。

  • 类方法需要通过self来访问类属性。


3 创建对象


创建一个类的实例(即对象)非常简单。只需调用类名后跟一对括号即可:


person1 = Person("Alice", 25)person2 = Person("Bob", 30)
复制代码


4 访问属性和方法


可以通过点符号访问对象的属性和方法:


person1.display()  # 输出: Name: Alice, Age: 25print(f"Name: {person2.name}, Age: {person2.age}")  # 输出: Name: Bob, Age: 30
复制代码


Python 还有一个很牛逼的操作就是可以直接给对象赋值类里不存在的属性,比如我给 person2 的一个不存在的属性 gender 赋值:


person2.gender = "男"print(getattr(person2,"gender"))# 输出:男
复制代码


5 和 Java 类的对比


5.1 类和文件


在 Python 中,一个文件可以包含多个类。我们新建一个 example.py 文件,里面创建两个类,并在 main.py 文件中使用它们。


example.py


class MyClass1:    def __init__(self, value):        self.value = value            def display(self):        print("MyClass1 Value is:", self.value)
class MyClass2: def __init__(self, value): self.value = value def display(self): print("MyClass2 Value is:", self.value)
复制代码


你可以在另一个文件中导入并使用这些类:


main.py


from example import MyClass1, MyClass2
# 创建MyClass1的实例instance1 = MyClass1("AAA")instance1.display()# 输出:MyClass1 Value is: AAA
# 创建MyClass2的实例instance2 = MyClass2("BBB")instance2.display()# 输出:MyClass2 Value is: BBB
复制代码


Java 一个文件也可以有多个类,但只能有一个 public 的类,并且 public 的类名必须与文件名相一致。这是编译器的基本要求。虽然可以有非 public 的类,但是在外部无法使用,只能在本文件的类里使用。


5.2 构造函数


Python 构造函数第一个参数是 self 代表类的实例本身,并且 self 是类任何方法的第一个参数。构造函数里用 self.xx = xx 赋值过的参数就是类的属性,不用像 Java 一样先声明属性。


文章转载自:救苦救难韩天尊

原文链接:https://www.cnblogs.com/GilbertDu/p/18394028

体验地址:http://www.jnpfsoft.com/?from=infoq

用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
Python面向对象编程:类和对象以及和Java的对比_Python_不在线第一只蜗牛_InfoQ写作社区