Python简单范例03【类】

范例一:创建一个"狗的类"

#coding:utf-8
class Dog():
	#一次模拟小狗的简单尝试
	#可将类视为有关如何创建实例的说明。Dog 类是一系列说明,让Python知道如何创建表示特定小狗的实例。
	
	def __init__(self,name,age):                ##此处是前后两个下划线“__”init"_ _"
		#初始化属性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!")
		
		
##下面来创建一个表示特定小狗的实例
my_dog = Dog('willie',6)

#调用类中的方法
my_dog.sit()
my_dog.roll_over()

		
print("My dog's name is " + my_dog.name.title() + ".")
print("My dog is " + str(my_dog.age) + "year old.")

 

范例二:修改类中的属性值

#coding:utf-8
class Car():
	def __init__(self,make,model,year):
		#初始化描述汽车的属性
		self.make = make
		self.model = model
		self.year = year
		self.odometer_reading = 0
		
	def get_description_name(self):
		print(self.year,self.make,self.model)
		
	def read_odometer(self):
		#打印一条指出汽车里程的消息
		print("This car has " + str(self.odometer_reading) + " mile on it.")

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


#方法一:直接修改
my_new_car = Car('audi','a4',2016)
my_new_car.get_description_name()
my_new_car.odometer_reading =23        #类中属性odometer_reading默认为0,可直接赋值修改
my_new_car.read_odometer()

#方法二:通过调用方法修改
def update_odometer(self,mileage):      #在类中新建一个更新属性odometer_reading的方法
		#将里程表读数设置为指定的值
		self.odometer_reading = mileage

my_new_car = Car('audi','a4',2016)
my_new_car.get_description_name()
my_new_car.update_odometer(23)            #调用更新属性的方法从而更新对应的属性值
my_new_car.read_odometer()


#方法三:自增函数修改
def increment_odometer(self,miles):        #在类中新建一个用于增加属性值的方法
		#将里程表读数增加指定的量
		self.odometer_reading += miles

my_new_car.increment_odometer(23)        ##调用方法即可在原值基础上增加相应的值

 

范例三:父类与子类的关系

#coding:utf-8
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")
	
	def update_odometer(self,mileage):
		if mileage >= self.odometer_reading:
			self.odometer_reading = mileage
		else:
			print("You can't roll back an odometer!")
			
	def increment_odometer(self,miles):
		self.odometer_reading += miles
		
class ElectricCar(Car):
	#电动汽车的独特之处
	def __init__(self,make,model,year):
		#初始化父类的属性
		super().__init__(make,model,year)
		self.battery_size = 70
	
	def describe_battery(self):
		#打印一条描述电瓶容量的消息
		print("This car has a " + str(self.battery_size) + \
		"-kWh battery.")
	
	def fill_gas_tank(self):
		#电动汽车没有邮箱
		print("This car doesn't need a gas tank!")
		
my_tesla = ElectricCar('tesla','model s',2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
my_tesla.fill_gas_tank()

 

范例四:类的调用

#coding:utf-8
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")
	
	def update_odometer(self,mileage):
		if mileage >= self.odometer_reading:
			self.odometer_reading = mileage
		else:
			print("You can't roll back an odometer!")
			
	def increment_odometer(self,miles):
		self.odometer_reading += miles
		
class Battery():
	#一次模拟电动汽车电瓶的简单尝试
	def __init__(self,battery_size=70):
		#初始化电瓶的属性
		self.battery_size = battery_size
		
	def describe_battery(self):
		#打印一条描述电瓶容量的消息
		print("This car has a " + str(self.battery_size) + \
		"-kWh battery.")
	
	def get_range(self):
		#打印一条消息,之处电瓶的续航里程
		if self.battery_size == 70:
			range =240
		elif self.battery_size == 85:
			range =270
		message = "This car can go approximately " +str(range)
		message += " miles on a full charge."
		print(message)
		
class ElectricCar(Car):
	#电动汽车的独特之处
	def __init__(self,make,model,year):
		#初始化父类的属性
		super().__init__(make,model,year)
		self.battery = Battery(70)
	
	#def describe_battery(self):
	#	#打印一条描述电瓶容量的消息
	#	print("This car has a " + str(self.battery_size) + \
	#	"-kWh battery.")
	
	def fill_gas_tank(self):
		#电动汽车没有邮箱
		print("This car doesn't need a gas tank!")
		
my_tesla = ElectricCar('tesla','model s',2016)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
my_tesla.battery.get_range()

 

范例五:导入模块

#从一个模块中导入多个类
from test3 import Car,ElectricCar

my_beetle = Car('volkswagen','beetle',2016)
print(my_beetle.get_descriptive_name())
		
my_tesla = ElectricCar('tesla','roadster',2016)
print(my_tesla.get_descriptive_name())


#导入模块中的所有类
from test3 import * 

my_beetle = Car('volkswagen','beetle',2016)
print(my_beetle.get_descriptive_name())
		
my_tesla = ElectricCar('tesla','roadster',2016)
print(my_tesla.get_descriptive_name())

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python爬虫是一种使用Python编程语言来获取网站上的数据的技术。下面是一个Python爬虫的范例: ```python # 导入所需的库 import requests from bs4 import BeautifulSoup # 发送HTTP请求并获取网页内容 url = 'https://www.example.com' # 设置要爬取的网页URL response = requests.get(url) # 发送HTTP请求并获取响应 html_content = response.text # 获取响应的文本内容 # 使用BeautifulSoup库解析网页内容 soup = BeautifulSoup(html_content, 'html.parser') # 创建BeautifulSoup对象 # 解析网页内容并提取所需的数据 data = soup.find('div', class_='data') # 假设要提取的数据在一个具有'data'的<div>标签中 data_text = data.get_text() # 获取该<div>标签的文本内容 # 将提取的数据保存到本地文件或数据库 with open('data.txt', 'w') as file: file.write(data_text) # 打印提取的数据 print(data_text) ``` 上述范例首先使用`requests`库发送HTTP请求,并获取目标网页的HTML内容。接下来,使用`BeautifulSoup`库创建一个BeautifulSoup对象,并指定解析器为'html.parser'。然后,通过调用BeautifulSoup对象的`find()`方法来找到具有'data'的`<div>`标签,并使用`get_text()`方法获取其中的文本内容。最后,可以选择将提取的数据保存到本地文件或数据库,并打印输出以便查看结果。 请注意,这只是一个简单的示例,实际的爬虫可能需要处理更复杂的网页结构、使用不同的解析器、处理JavaScript和动态内容等。同时,使用爬虫时应遵守网站的访问规则,并尊重合法权益。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值