您现在的位置是 : 首页  >  行业聚焦  > 正文

环球即时看!「2」Python面向对象-「1」类

日期:2023-04-03 18:59:55 来源:测开人小江


(相关资料图)

什么是类

类是Python面向对象编程的基本概念之一,它是一种抽象数据类型,用于封装数据和行为。可以把类看作是一种蓝图或者模板,用于创建对象。

类的命名规范

类名应该采用驼峰式命名法(CamelCase),即每个单词的首字母都要大写,不使用下划线连接单词。例如,类名可以是 MyClass 或者 MyAwesomeClass。类名应该具有描述性,能够清晰地表达类的功能和作用。如果一个类是另一个类的子类,那么子类的类名应该包含父类的类名。例如,如果有一个 Animal 类和一个 Dog 类,那么 Dog 类应该是 Animal 类的子类,类名可以是 Dog 或者 AnimalDog。

以下是一些符合规范的类名示例:

class Car:passclass UserAccount:passclass MyCustomException(Exception):pass

需要注意的是,Python内置的一些类名采用单词全小写,例如 list、dict、set 等。这些类名也应该被避免作为自定义类的名称。

如何定义一个类

Python使用class关键字来定义类。一个最基本的类定义如下:

class MyClass:pass

在类定义中,类名以大写字母开头,紧跟着是冒号。类的主体位于缩进块中,通常包含类的属性和方法。这里的pass是一个占位符,表示该类暂时没有任何属性和方法。

类的属性和方法

类的属性是类的数据成员,用于存储对象的状态。类的方法是类的成员函数,用于操作对象的状态。下面是一个包含属性和方法的类的例子:

class Person:def __init__(self, name, age):self.name = nameself.age = agedef say_hello(self):print(f"Hello, my name is {self.name} and I"m {self.age} years old.")

这个类的__init__方法是一个构造函数,用于初始化对象的属性。self是一个特殊的参数,表示当前对象本身。在构造函数中,我们为对象的name和age属性赋值。

类的say_hello方法是一个简单的方法,用于输出一个问候语。在这个方法中,我们使用了self.name和self.age来访问对象的属性。

如何创建一个对象

在定义了一个类之后,我们可以通过实例化一个对象来使用它。下面是一个实例化Person类的例子:

person = Person("Alice", 30)person.say_hello()

这里我们创建了一个名为person的Person对象,并为它的name和age属性赋值。然后我们调用了say_hello方法来输出问候语。

对象的属性和方法

对象的属性是类的属性的实例,用于存储对象的状态。对象的方法是类的方法的实例,用于操作对象的状态。我们可以通过点.操作符来访问对象的属性和方法。下面是一个使用对象属性和方法的例子:

person = Person("Alice", 30)print(person.name)person.say_hello()

这里我们创建了一个名为person的Person对象,并使用name属性输出了对象的名字。然后我们调用了say_hello方法来输出问候语。

类的继承和多态

类的继承是一种重要的面向对象编程技术,它允许创建一个新类,从现有的类中继承属性和方法。继承类也称为父类、基类或超类,被继承类称为子类、派生类或衍生类。下面是一个继承类的例子:

class Student(Person):def __init__(self, name, age, major):super().__init__(name, age)self.major = majordef say_hello(self):super().say_hello()print(f"I"m majoring in {self.major}.")

这个Student类继承自Person类,并新增了一个major属性。Student类还重写了say_hello方法,首先调用了Person类的say_hello方法,然后输出major属性的值。

下面是一个使用继承类的例子:

student = Student("Bob", 20, "Computer Science")student.say_hello()

这里我们创建了一个名为student的Student对象,并为它的name、age和major属性赋值。然后我们调用了say_hello方法来输出问候语和专业。

多态是另一个重要的面向对象编程技术,它允许不同类型的对象对相同的消息做出不同的响应。下面是一个多态的例子:

def greet(person):person.say_hello()greet(person)greet(student)

这里我们定义了一个greet函数,它接受一个Person对象作为参数,并调用say_hello方法来输出问候语。我们可以向greet函数传递一个Person对象或者一个Student对象,它们都具有say_hello方法,并可以正确地输出问候语和专业。

类的私有属性和方法

Python中的类成员默认是公有的,可以在类的外部直接访问。如果希望某些类成员只能在类的内部访问,可以在它们的名字前面加上两个下划线__。这样,这些类成员就成为了私有成员。下面是一个包含私有属性和方法的类的例子:

class BankAccount:def __init__(self, balance):self.__balance = balancedef deposit(self, amount):self.__balance += amountdef withdraw(self, amount):if amount <= self.__balance:self.__balance -= amountelse:print("Insufficient funds.")def __get_balance(self):return self.__balance

这个BankAccount类包含了一个私有属性__balance和一个私有方法__get_balance。__get_balance方法用于返回当前账户余额,只能在类的内部调用。

我们可以通过在类的外部使用下面的代码来访问公有方法和私有方法:

account = BankAccount(100)account.deposit(50)account.withdraw(30)print(account._BankAccount__balance)print(account._BankAccount__get_balance())

这里我们创建了一个名为`account`的BankAccount对象,并使用公有方法deposit和withdraw来存款和取款。然后,我们通过在变量名前面加上_BankAccount__来访问私有属性和方法。

需要注意的是,虽然Python中的私有属性和方法不能直接从外部访问,但它们并不是完全私有的。通过使用上面提到的方式,仍然可以从外部访问它们。因此,使用私有属性和方法时需要小心,不要将其视为绝对的安全措施。

总结

本文介绍了Python中的类、对象、方法和属性,以及类的继承、多态和私有属性和方法等相关概念和技术。掌握面向对象编程的基础知识对于Python编程来说是至关重要的,它可以帮助我们更好地组织代码、复用代码、提高代码的可读性和可维护性,从而更好地完成我们的编程任务。

标签:

推荐