ZZA的项目学习开发文档学习笔记5/8

Python面向对象编程:

class编程

类中的函数称为方法

修改属性的值:
1.直接修改属性的值:在实例中直接访问并修改即可:

# 以上代码省略
my_new_car.read_odometer = 23

2.通过方法修改:在类中定义一个方法,将要修改的属性传给方法,在方法中指定操作即可实现对属性的值的修改

3.通过方法对属性的值进行递增:实质上和第二个做法本质一样,是第二个方法的子集,只不过这个修改较于第二个更具体化,通常为了满足一些程序的特殊要求,采取这个做法

给属性指定默认值:
指定的默认值不需要在__init__()内声明形参,直接在方法体内定义即可:

def __init__(self·····):
	self.make = make
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 = f"{self.year} {self.make} {self.model}"
        return long_name

    def read_odometer(self):
        print(f"Tis car has {self.odometer_reading} miles on it.")

    def update_odometer(self, mileage):
        self.odometer_reading = mileage

car = Car('subaru', 'wrx sti', 2019)

car.update_odometer(23)
car.read_odometer()

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

class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 100

    def get_descriptive_name(self):
        long_name = f"{self.year} {self.make} {self.model}"
        return long_name

    def read_odometer(self):
        print(f"Tis car has {self.odometer_reading} miles on it.")

    def update_odometer(self, mileage):
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print("Get the fuck ou off here.")

    def increment_odometer(self, miles):
        self.odometer_reading += miles
            

car = Car('subaru', 'wrx sti', 2019)
print(car.get_descriptive_name())

car.update_odometer(23500)
car.read_odometer()

car.increment_odometer(100)
car.read_odometer()

class—— pratice

项目一:登录系统

创建一个User类,属性为first_namelast_name,自行设计方法,每次尝试登陆操作调用一次方法,最后调用结束输出用户的信息(包括登陆的尝试次数):

class User:
    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name
        self.login_attempts = 0

    def describe_user(self):
        full_name = f"{self.first_name.title()} {self.last_name.title()}"
        print(Full_name)
        print(self.login_attempts)

    def greet_user(self):
        print(f"Hello, {full_name}, It's nice to meet you.")

    def increment_login_attempts(self):
        self.login_attempts += 1

    def reset_login_attempts(self):
        self.login_attempts = 0
        

user = User('tommy', 'vercetti')

print(user.login_attempts)

user.increment_login_attempts()

user.increment_login_attempts()

user.increment_login_attempts()

print(user.login_attempts)

user.reset_login_attempts()

项目二:餐厅统计系统
创建一个Restaurant类,用来表述餐厅客人的情况,自行创建方法,要求能设置就餐人数,调用方法传递值并打印出来
要求创建的方法能令人数递增

**class Restaurant:
    def __init__(self, restaurant_name, cuisine_type):
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type
        self.number_served = 500

    def describe_restaurant(self):
        print(f"Our restaurant name is {self.restaurant_name}.")
        print(f"Our restaurant cuisine's type is {self.cuisine_type}")
        print(f"Right now, about {self.number_served} people eat in there.")

    def open_restaurant(self):
        print("It's still open now.")

    def set_number_served(self, number):
        self.number_served += number
    
restaurant = Restaurant('KFC', 'FAST-FOOD')

restaurant.set_number_served(100)

restaurant.describe_restaurant()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值