python创建person类_创建和使用类

本文介绍了Python中的类和对象,包括如何创建类、初始化对象、使用__init__()函数、定义对象方法以及如何修改和删除对象属性。示例中展示了如何创建一个Person类,以及如何在该类中定义和使用方法。此外,还讨论了self参数的用途,并通过Dog类的例子解释了如何创建和使用带有属性和方法的类。
摘要由CSDN通过智能技术生成

## Python类和对象

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__()`函数。

*****

## 对象方法

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

示例,让我们在Person类中创建一个方法,插入一个打印问候语的函数,并在p1对象上执行它:

```

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()

```

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

*****

## self参数

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

示例,使用单词*mysillyobject*和*abc*代替*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()

```

*****

## 修改对象属性

您可以像这样修改对象的属性,示例,将p1的年龄设置为40:

```

p1.age = 40

```

*****

## 删除对象属性

您可以使用`del`关键字删除对象的属性,示例,从p1对象中删除age属性:

```

del p1.age

```

*****

## 删除对象

您可以使用`del`关键字删除对象,示例,删除p1对象:

```

del p1

```

*****

## pass 语句

`class`定义不能为空,但是如果由于某种原因而有一个`class`不包含任何内容的定义,请放入`pass`语句中,以避免出错。

```

class Person:

pass

```

## 创建和使用类

使用类几乎可以模拟任何东西。比如编写一个表示小狗的简单类Dog,它表示的不是特定的小狗,而是任何小狗。对于大多数宠物狗,它们都有名字和年龄,另外大多数小狗还会蹲下和打滚。

由于大多数小狗都具备上述两项信息(名字和年龄)和两种行为(蹲下和打滚),我们的Dog类将包含它们。这个类让Python知道如何创建表示小狗的对象。编写这个类后,我们将使用它来创建表示特定小狗的实例。

## 创建 Dog 类

根据Dog类创建的每个实例都将存储名字和年龄。我们赋予了每条小狗蹲下(sit())和打滚(roll\_over())的能力:

```

class Dog():

def __init__(self, name, age):

"""初始化属性name和age"""

self.name = name

self.age = age

def sit(self):

"""模拟小狗被命令时蹲下"""

print(self.name.title() + " is now sitting.")

def roll_over(self):

"""模拟小狗被命令时打滚"""

print(self.name.title() + " rolled over!")

```

在class 处,我们定义了一个名为Dog的类。根据约定,在Python中,首字母大写的名称指的是类。这个类定义中的括号是空的,因为我们要从空白创建这个类。然后我们编写了一个文档字符串,对这个类的功能作了描述。

类中的函数称为方法;你前面学到的有关函数的一切都适用于方法,就目前而言,唯一重要的差别是调用方法的方式。方法\_\_init\_\_()是一个特殊的方法,每当你根据Dog类创建新实例时, Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。

我们将方法\_\_init\_\_()定义成了包含三个形参: self、 name和age。在这个方法的定义中,形参self必不可少,还必须位于其他形参的前面。为何必须在方法定义中包含形参self呢?因为Python调用这个\_\_init\_\_()方法来创建Dog实例时,将自动传入实参self。每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。

我们创建Dog实例时, Python将调用Dog类的方法\_\_init\_\_()。我们将通过实参向Dog()传递名字和年龄; self会自动传递,因此我们不需要传递它。每当我们根据Dog类创建实例时,都只需给最后两个形参( name和age)提供值。

之后定义的两个变量都有前缀self。以self为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。 [](http://self.name)[self.name](http://self.name) = name获取存储在形参name中的值,并将其存储到变量name中,然后该变量被关联到当前创建的实例。 self.age = age的作用与此类似。像这样可通过实例访问的变量称为属性。

Dog类还定义了另外两个方法: sit()和roll\_over()。由于这些方法不需要额外的信息,如名字或年龄,因此它们只有一个形参self。我们后面将创建的实例能够访问这些方法,换句话说,它们都会蹲下和打滚。当前, sit()和roll\_over()所做的有限,它们只是打印一条消息,指出小狗正蹲下或打滚。但可以扩展这些方法以模拟实际情况:如果这个类包含在一个计算机游戏中,这些方法将包含创建小狗蹲下和打滚动画效果的代码。如果这个类是用于控制机器狗的,这些方法将引导机器狗做出蹲下和打滚的动作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值