编程基础|Python中的类和对象

liftword3周前 (12-08)技术文章11

Python中的类和对象是面向对象编程的基本概念。类是一种抽象的数据类型,用来定义一组具有相同属性和方法的对象。对象是类的实例,也就是具体的数据和行为。Python中一切皆对象,包括函数,模块,甚至类本身。

创建一个类

要创建类,使用关键字class:

创建一个名为 MyClass 的类,其属性名为 x:

class MyClass:
x = 5

创建对象

使用名为 MyClass 的类来创建对象:

创建一个名为 p1 的对象,并打印 x 的值:

p1 = MyClass()
print(p1.x)

__init__() 函数

上面的示例是最简单形式的类和对象,在现实生活应用程序中并没有真正的用处。

要理解类的含义,必须理解内置的 __init__() 函数。

所有类都有一个名为 __init__() 的函数,该函数始终在类启动时执行。

使用 __init__() 函数为对象属性,或者创建对象时需要执行的其他操作:

创建一个名为 Person 的类,使用 __init__() 函数为姓名和年龄赋值:

class Person:
 def __init__(self, name, age):
 self.name = name
self.age = age

p1 = Person("John", 36)

print(p1.name)
print(p1.age)

注意:__init__()每次使用该类创建新对象时都会自动调用该函数。



__str__() 函数

__str__() 函数控制当类对象表示为字符串时应返回的内容。

如果未设置 __str__() 函数,则返回对象的字符串表示形式:

不使用 __str__() 函数的对象的字符串表示形式:

class Person:
 def __init__(self, name, age):
     self.name = name
     self.age = age

p1 = Person("John", 36)

print(p1)

输出:<__main__.Person object at 0x0000000009276C88>

使用 __str__() 函数的对象的字符串表示形式:

class Person:
 def __init__(self, name, age):
     self.name = name
     self.age = age

 def __str__(self):
     return f"{self.name}({self.age})"

p1 = Person("John", 36)

print(p1)

输出:John(36)

对象方法

对象还可以包含方法。对象中的方法是属于该对象的函数。

在Person类中创建一个方法:

class Person:
 def __init__(self, name, age):
    self.name = name
   self.age = age

 def myfunc(self):
 print("Hello my name is " + self.name)

p1 = Person("John", 36)
p1.myfunc()

输出:Hello my name is John

注意:参数self是对类当前实例的引用,用于访问属于该类的变量。


self参数

self参数是对该类的当前实例的引用,用于访问属于该类的变量。它不一定命名self,可以随意命名它,但它必须是类中任何函数的第一个参数:

例子

使用mysillyobjectabc代替self

class Person:
 def __init__(mysillyobject, name, age):
 mysillyobject.name = name
mysillyobject.age = age

 def myfunc(abc):
 print("Hello my name is " + abc.name)

p1 = Person("John", 36)
p1.myfunc()

输出:Hello my name is John


修改对象属性

将p1的年龄设置为40:

p1.age = 40

删除对象属性

使用 del关键字删除对象的属性:

从 p1 对象中删除age属性:

del p1.age

删除对象

使用del关键字删除对象:

删除p1对象:

del p1

class定义不能为空,但如果由于某种原因您的class定义没有内容,请放入该pass语句以避免出现错误。

class Person:
   pass