python类和对象(1)

本文详细介绍了Python中类的创建,包括类的构造方法(如`__init__`)、成员变量(实例变量和类变量的区别)、实例方法与类方法的使用,以及如何通过装饰器实现属性的私有化和访问控制。
摘要由CSDN通过智能技术生成

类的创建

class Car(object):
	#类体
	pass

object类是python中的基类,所有类都继承于此类

  • pass只是为了维持结构完整的占位符

创建对象

car = Car()

类的成员

  • 成员变量(实例变量,类变量)
  • 构造方法__init__():用来初始化实例对象,第一个参数是self(注意是双下划线,python中双下划线代表私有函数)
  • 成员方法(实例方法,类方法)
  • 属性

构造方法

class Dog:
	def __init__(self,name,age):
		self.name=name
		self.age=age
d=Dog('球球',2)
print('狗狗的名字叫{0},{1}岁了'.format(d.name, d.age))

self 代表类的实例,self 在定义类的方法时是必须有的,但调用时不必传入相应的参数。

实例方法

class Dog:
	def __init__(self,name,age):
		self.name=name
		self.age=age
	def run(self):# 实例方法
		print('{}正在跑'.format(self.name))
	def __run2(self):#私有方法,只能在类内调用
		print('{}正在跑'.format(self.name))
d=Dog('球球',2)
print('狗狗的名字叫{0},{1}岁了'.format(d.name, d.age))
d.run()# 实例方法的调用

类变量

  • 成员变量由对象访问,类变量由类直接访问
  • 类变量是属于类的变量,不属于单个对象
  • 私有的实例变量和类变量只能在类内部访问
class Account:
	rate = 0.0568
	__rate2 = 0.0668# 私有类变量
	def __init__(self,owner,amount,date):
		self.owner=owner
		self.amount=amount
		self.__date=date# 私有实例变量
account=Account('球球',1000)
print('账户名为{0}'.format(account.owner))
print('账户金额{0}'.format(account.amount))
print('利率为{0}'.format(Account.rate))
d.run()# 实例方法的调用

类方法

第一个参数不是self而是类本身

class Account:
	rate = 0.0568
	def __init__(self,owner,amount):
		self.owner=owner
		self.amount=amount
	@classmethod
	def interest_by(cls, amt):
		return Account.rate * amt
account=Account('球球',1000)
print('账户名为{0}'.format(account.owner))
print('账户金额{0}'.format(account.amount))
print('利率为{0}'.format(Account.rate))
print('利率为{0}'.format(Account.interest_by(2)))
  • 定义类方法需要装饰器,装饰器以@开头,修饰函数、方法和类,用来约束他们
  • cls代表类本身
  • 使用类名访问

使用属性

成员变量应该被设置为私有,通过set() get()方法访问
@property修饰器,代替get函数

class Dog:
	def __init__(self,name,age):
		self.name=name
		self.__age=age
	def run(self):# 实例方法
		print('{}正在跑'.format(self.name))
	def __run2(self):#私有方法,只能在类内调用
		print('{}正在跑'.format(self.name))
	def get_age(self):
		return self.__age
	# @property
	# def age(self):
	# 	return self.__age
	def set_age(self,age):
		self.__age=age
d=Dog('球球',2)
print('狗狗的名字叫{0},{1}岁了'.format(d.name, d.get_age()))
d.run()# 实例方法的调用
d.set_age(3)
print('狗狗的名字叫{0},{1}岁了'.format(d.name, d.get_age()))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值