python编程 从入门到实践 第九章 类(上)

类中的函数称为方法

class Dog:
	def __init__(self,name,age):
		"""初始化name和age"""
		self.name=name
		self.age=age
	def sit(self):
		print(f"{self.name}is now sitting")
 
	def roll_over(self):
		print(f"{self.name} rolled over!")
 
my_dog=Dog('欢欢',6)
print(f"my dog`s name is {my_dog.name}.")
print(f"my dog is {my_dog.age} years old.")
my_dog.sit()
my_dog.roll_over()
 
"""
my dog`s name is 欢欢.
my dog is 6 years old.
欢欢is now sitting
欢欢 rolled over!
"""

形参self必不可少,而且必须位于其他形参前面,必须定义形参self的原因是:python在调用这个方法创建Dog实例时,将自动传入实参self,每个与实例相关的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问到类中的属性和方法。

通过实例访问的变量称为属性

练习9-1,9-2

class Restaurant(object):
	"""docstring for Restaurant"""
	def __init__(self, restaurant_name,cuisine_type):
		self.restaurant_name=restaurant_name
		self.cuisine_type=cuisine_type
	def describe_restaurant(self):
		print(f"名字是:{self.restaurant_name},烹饪风味是{self.cuisine_type}")
	def open_restaurant(self):
		print(f"{self.restaurant_name}餐厅正在营业")
 
the_restaurant=Restaurant('十里八湘','川菜馆')
print(f"这个店的名字是{the_restaurant.restaurant_name}")
print(f"这个店的口味类型是{the_restaurant.cuisine_type}")
the_restaurant.describe_restaurant()
the_restaurant.open_restaurant()
 
"""
这个店的名字是十里八湘
这个店的口味类型是川菜馆
名字是:十里八湘,烹饪风味是川菜馆
十里八湘餐厅正在营业
"""

练习9-3

class User:
	def __init__(self,first_name,last_name,gender):
		self.first_name=first_name
		self.last_name=last_name
		self.gender=gender
	def describe_user(self):
		print(f"姓:{self.first_name},名:{self.last_name},性别:{self.gender}")
 
	def greet_user(self):
		print(f"欢迎{self.first_name}{self.last_name}{self.gender}士!!!")
 
user1=User('王','大攀','男')
user2=User('李','俊俊','女')
user1.describe_user()
user1.greet_user()
user2.describe_user()
user2.greet_user()
 
"""
姓:王,名:大攀,性别:男
欢迎王大攀男士!!!
姓:李,名:俊俊,性别:女
欢迎李俊俊女士!!!
"""

给属性指定默认值,修改属性的值

练习9-4

class Restaurant(object):
	"""docstring for Restaurant"""
	def __init__(self, restaurant_name,cuisine_type):
		self.restaurant_name=restaurant_name
		self.cuisine_type=cuisine_type
		self.number_served=0
	def describe_restaurant(self):
		print(f"名字是:{self.restaurant_name},烹饪风味是{self.cuisine_type},有{self.number_served}人就餐")
	def open_restaurant(self):
		print(f"{self.restaurant_name}餐厅正在营业")
 
	def set_number_served(self,number):
		self.number_served=number
	def increment_number_served(self,inumber):
		self.number_served+=inumber
 
the_restaurant=Restaurant('十里八湘','川菜馆')
the_restaurant.set_number_served(16)
the_restaurant.describe_restaurant()
the_restaurant.increment_number_served(10)
the_restaurant.describe_restaurant()
 
#名字是:十里八湘,烹饪风味是川菜馆,有16人就餐
#名字是:十里八湘,烹饪风味是川菜馆,有26人就餐

练习9-5

class User:
	def __init__(self,first_name,last_name,gender,login_attempts):
		self.first_name=first_name
		self.last_name=last_name
		self.gender=gender
		self.login_attempts=login_attempts
	def describe_user(self):
		print(f"姓:{self.first_name},名:{self.last_name},性别:{self.gender}")
 
	def greet_user(self):
		print(f"欢迎{self.first_name}{self.last_name}{self.gender}士!!!")
 
	def increment_login_attempts(self):
		self.login_attempts+=1
		print(f"现有人数{self.login_attempts}")
	def reset_login_attempts(self):
		self.login_attempts=0
		print(f"现有人数{self.login_attempts}")
 
user1=User('王','子','男',1)
user1.describe_user()
user1.increment_login_attempts()
user1.increment_login_attempts()
user1.increment_login_attempts()
user1.reset_login_attempts()
user1.greet_user()
 
"""
姓:王,名:子,性别:男
现有人数2
现有人数3
现有人数4
现有人数0
欢迎王子男士!!!
"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值