python类方法编写例子_一篇文章搞定Python中的类

面向对象编程是最有效的软件编写方法之一。在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。编写类时,你定义一大类对象都有的通用行为。基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。

创建和使用类

创建Dog类

根据约定,在Python中,首字母大写的名称指的是类。 这个类定义中的括号是空的,因为我们要从空白创建这个类。类中的函数称为方法。

代码如下: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!")

__init__方法

__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。它包含了三个形参:self、name和age,在这个方法的定义中,形 参self必不可少,还必须位于其他形参的前面。

根据类创建实例

可将类视为有关如何创建实例的说明。

代码示例:my_dog = Dog('demo',18)

print(my_dog.name.title())

print(my_dog.age)

访问属性

要访问实例的属性,可使用句点表示法。例如my_dog.name

调用方法

要调用方法,可指定实例的名称和要调用的方法,并用句点分隔它们。

代码示例:my_dog = Dog('demo', 6)

my_dog.sit()

my_dog.roll_over()

创建多个实例my_dog = Dog('demo', 6)

you_dog = Dog('demo_go', 6)

使用类和实例

类编写好后,你的大部分时间都将花在使用根据类创建的实例上。你需要执行的一个重要任务是修改实例的属性。你可以直接修改实例的属性,也可以编写方法以特定的方式进行修改。

Car类class Car():

# Car类

def __init__(self,name,model,year):

# 初始化

self.name = name

self.model = model

self.year = year

def get_descript(self):

# 返回描述信息

long_name = str(self.year) + '---' + self.name + '---' + self.model

return long_name.title()

# 示例化

my_car = Car('audi','A4','2016')

print(my_car.get_descript())

处理的结果是:2016---Audi---A4

给属性设置默认值

类中的每个属性都必须有初始值,哪怕这个值是0或空字符串。在有些情况下,如设置默认值时,在方法__init__()内指定这种初始值是可行的;如果你对某个属性这样做了,就无需包含为它提供初始值的形参。

在car类在__init__的方法新增属性self.odometer_reading = 0,同时新增一个方法read_odometer():def read_odometer(self):

# 打印一条指出汽车里程的消息

print("汽车的里程有:" + str(self.odometer_reading))

调用该方法:my_car = Car('audi','A4','2016')

print(my_car.get_descript())

my_car.read_odometer()

修改属性的值

可以以三种不同的方式修改属性的值:直接通过实例进行修改;通过方法进行设置;通过方法进行递增(增加特定的值)。

直接修改属性的值

代码如下:my_new_car.odometer_reading = 23 my_new_car.read_odometer()

有时候需要像这样直接访问属性,但其他时候需要编写对属性进行更新的方法。

通过方法修改属性的值

在Car类新增一个update_odometer()的方法,专门用来修改属性的值。

代码如下:def update_odometer(self,update_value):

# 修改里程值

self.odometer_reading = update_value

在调用的时候就很简单了:my_new_car.update_odometer(66)

my_new_car.read_odometer()

通过方法对属性的值进行递增

递增的逻辑其实很简单,只有将之前的记录保存并且和后面传入的值进行相加操作即可。

代码如下:def update_odometer(self,update_value):

# 修改里程值

self.odometer_reading += update_value

调用方法:my_new_car.update_odometer(6)

my_new_car.read_odometer()

my_new_car.update_odometer(1)

my_new_car.read_odometer()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值