python学习_类(1)

本文深入讲解面向对象编程概念,通过创建Python类实例演示属性和方法的使用,包括属性的直接修改、通过方法修改以及递增操作,适合初学者掌握OOP核心原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象编程是最有效的软件编写方法之一。
理解面向对象编程有助于你像程序员那样看世界,还可以帮助你明白自己编写的代码。了解类背后的概念可培养你的逻辑思维,让你能够通过编写程序来解决遇到的任何问题。
1.创建一个PP类

// 一个有关python类的代码
class PP:
    """"一次创造PP的简单尝试"""

    def __init__(self, name, year, sex):
        """初始化描述PP的属性"""
        self.name = name
        self.year = year
        self.sex = sex

    def get_descriptive_name(self):
        """返回描述性信息"""
        long_name = self.name + '出生于' + str(self.year) + '年' + '性别是' + str(self.sex)
        return long_name.title()

    def sit(self):
        """命令PP坐下"""
        print(self.name.title() + '坐下了')


依次解释上面的代码:
Python规定,首字母大写的名称指类。类定义中的括号是空的,我们要从空白创建PP类。
1.1 方法__init__()
类中的函数称为方法。这个方法由前后分别两个下划线及中间的init构成。这个方法每当你根据PP类创建新的实例(##根据类来创建对象称为实例化)时,python会自动运行它。
该方法包含四个形参,self, name, year, sex。其中,形参self必须存在且位于其他形参前面。self必须存在的原因是:Python调用__init__()方法创建实例时,会自动传入实参self,每个鱼类相关联的方法调用都会自动传递实参self,是一个指向实例本身的引用。所以我们在创建实例时,只需给self后的形参赋值。
self.name,self.year,self.sex他仨变量都有前缀self,以self为前缀的变量都可供类中的所有方法使用,你可以通过类中的任何实例访问self.xxx

1.2 根据类创建实例

my_pp = PP('小文', 2000, '女')
print(my_pp.get_descriptive_name())
my_pp.sit()

1.3 如何访问属性

my_pp.name ##可以访问my_pp的属性name的值。(书言:句点表示法)

1.4 如何调用方法

my_pp.sit() ##根据类创建实例后,使用句点表示法来调用类中定义的方法。

2.使用类和实例
下面代码摘自《python编程从入门到实践》,懒得改了。

class Car:
    """"一次模拟汽车的简单尝试"""

    def __init__(self, make, model, year):
        """初始化描述汽车的属性"""
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def get_descriptive_name(self):
        """返回整洁的描述性信息"""
        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
        return long_name.title()

    def read_odometer(self):
        """打印一条指出汽车里程的消息"""
        print("This car has " + str(self.odometer_reading) + " miles on it")


my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()

##部分代码上文有所解释,此处不再重复解释。
2.1 给属性指定默认值
类中的每个属性必须有初始值。在方法中赋值,这样就方法的定义中就无需包含这个形参。

self.odometer_reading = 0 ##__init__()的形参中没有加入odometer_reading

方法read_odometer(self)用来读取属性self.odometer_reading,并打印。

2.2 修改属性的值
2.2.1 直接修改

my_new_car = Car('audi', 'a4', 2016)
my_new_car.odometer_reading = 23 ##修改了my_new_car.odometer_reading的值
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()

2.2.2 通过方法修改属性的值

class Car():
	--snip--
    def update_odometer(self, mileage):
        """将里程表读数设置为指定的值"""
        self.odometer_reading = mileage

my_new_car = Car('audi', 'a4', 2016)
my_new_car.update_odometer(23)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()

都是明白人。

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

class Car():
	--snip--
	def increment_odometer(self, miles):
        """将里程表读数增加指定的量"""
        self.odometer_reading += miles ##方法increment_odometer(self, miles)接受一个数字,并将其加到self.odometer_reading上。

my_new_car = Car('audi', 'a4', 2016)
my_new_car.update_odometer(200)
my_new_car.read_odometer()
my_new_car.increment_odometer(100)
my_new_car.read_odometer()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值