python

python(17):类(1)

2022-04-10  本文已影响0人  Z_bioinfo

1.创建和使用类

###1.创建dog()类
class Dog():#定义一个名为dog()的类,类的首字母得大写
    #一次模拟小狗的简单尝试
    def __init__(self, name, age):#类中的函数称为方法,定义了self, name, age三个形参,必须在方法定义中包含形参self,因为python调用 _init__()方法创建Dog()类时,将自动传入实参self
        #每个与类相关联方法调用都自动传递实参self,它是一个指向实例本身的引用,让示例能够访问类中的属性和方法
        #初始化属性name和age
        #只需给后两个形参提供值
        self.name = name
        self.age = age
        
        def sit(self):
            #模拟小狗被命令时蹲下
            print(self.name + 'is now sitting')
            
        def roll_over(self):
            #模拟小狗被命令时打滚
            print(self.name + 'is now rolled over')
===========================================
###2.根据类创建实例
class Dog():#定义一个名为dog()的类,类的首字母得大写
    #一次模拟小狗的简单尝试
    def  __init__(self, name, age):#类中的函数称为方法,定义了self, name, age三个形参,必须在方法定义中包含形参self,因为python调用 _init__()方法创建Dog()类时,将自动传入实参self
        #每个与类相关联方法调用都自动传递实参self,它是一个指向实例本身的引用,让示例能够访问类中的属性和方法
        #初始化属性name和age
        #只需给后两个形参提供值
        self.name = name
        self.age = age
        
    def sit(self):
            #模拟小狗被命令时蹲下
            print(self.name + 'is now sitting')
            
    def roll_over(self):
            #模拟小狗被命令时打滚
            print(self.name + 'is now rolled over')

my_dog = Dog('da ming', 3)
#访问属性
print('my dog name is ' + my_dog.name)
print('my dog is ' + str(my_dog.age) +  'years old')
my dog name is da ming
my dog is 3years old

#调用方法
my_dog.sit()
my_dog.roll_over()
da mingis now sitting
da mingis now rolled over
#创建多个实例
class Dog():
    #一次模拟小狗的简单尝试
    def __init__(self, name, age)
        self.name = name
        self.age = age
        
    def sit(self):
            
            print(self.name + 'is now sitting')
            
    def roll_over(self):
            
            print(self.name + 'is now rolled over')

my_dog = Dog('da ming', 3)
your_dog = Dog('ni ni', 3)

print('my dog name is ' + my_dog.name)
print('my dog is ' + str(my_dog.age) +  'years old')
my_dog.sit()

print('\nyour dog name is ' + your_dog.name)
print('your dog is ' + str(your_dog.age) +  'years old')
your_dog.sit()
my dog name is da ming
my dog is 3years old
da mingis now sitting

your dog name is ni ni
your dog is 3years old
ni niis now sitting

2.使用类和实例

#1.编写一个表示汽车的类
class Car():
    #一次模拟汽车的简单尝试
    def __init__(self, make, model, year):#初始化描述汽车的属性
        self.make = make
        self.model = model
        self.year = year
    def get_descriptive_name(self):
        #返回整洁的描述信息
        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
        return long_name
my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
2016 audi a4
==========================================
#2.给属性指定默认值
class Car():
    
    def __init__(self, make, model, year):
        #初始化描述汽车的属性
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0 #添加一个名为odometer_reading的属性,初始值为0
    def get_descriptive_name(self):
        
        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
        return long_name
    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()
2016 audi a4
this car has 0 miles on it
===================================================
#修改属性的值
#直接修改
class Car():
    
    def __init__(self, make, model, year):
        #初始化描述汽车的属性
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0 #添加一个名为odometer_reading的属性,初始值为0
    def get_descriptive_name(self):
        
        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
        return long_name
    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.odometer_reading = 23#直接修改
my_new_car.read_odometer()
2016 audi a4
this car has 23 miles on it
================================
#通过方法修改属性的值
class Car():
    
    def __init__(self, make, model, year):
        #初始化描述汽车的属性
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0 #添加一个名为odometer_reading的属性,初始值为0
    def get_descriptive_name(self):
        
        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
        return long_name
    def read_odometer(self):
        #打印一条指出汽车里程的消息
        print('this car has ' + str(self.odometer_reading) + ' miles on it')
    
    #定义一个新方法
    def update_odometer(self, mileage):
        #将里程表读数设置为指定的值
        self.odometer_reading = mileage

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

my_new_car.update_odometer(23)
my_new_car.read_odometer()
2016 audi a4
this car has 23 miles on it
===========================
#进行扩展
class Car():
    
    def __init__(self, make, model, year):
        #初始化描述汽车的属性
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0 #添加一个名为odometer_reading的属性,初始值为0
    def get_descriptive_name(self):
        
        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
        return long_name
    def read_odometer(self):
        #打印一条指出汽车里程的消息
        print('this car has ' + str(self.odometer_reading) + ' miles on it')
    
    #定义一个新方法
    def update_odometer(self, mileage):
        #将里程表读数设置为指定的值,禁止将里程表往回调
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print('you can not roll back an odometer')

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

my_new_car.update_odometer(23)
my_new_car.read_odometer()
===================================
#通过方法对属性的值进行递增
class Car():
    
    def __init__(self, make, model, year):
        #初始化描述汽车的属性
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0 #添加一个名为odometer_reading的属性,初始值为0
    def get_descriptive_name(self):
        
        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
        return long_name
    def read_odometer(self):
        #打印一条指出汽车里程的消息
        print('this car has ' + str(self.odometer_reading) + ' miles on it')
    
    
    def update_odometer(self, mileage):
        #将里程表读数设置为指定的值
        self.odometer_reading = mileage
    def increment_odometer(self, miles):
        #将里程表读数增加指定的量
        self.odometer_reading += miles
my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())

my_new_car.update_odometer(23500)
my_new_car.read_odometer()    

my_new_car.increment_odometer(100)
my_new_car.read_odometer()
2016 audi a4
this car has 23500 miles on it
this car has 23600 miles on it
上一篇下一篇

猜你喜欢

热点阅读