python面向对象基础语法

类的使用
定义类的关键字是class
类名原则上符合标识符命名规范,通常采用大驼峰命名风格
在类名后需要加’:’
类的内容要整体缩进

示例:

class Cat:
	def eat(self):
		print('这是吃饭方法')
	def sleep(self):
		print('这是睡觉方法')
#创建对象
tom = Cat()
print(tom)
#属性还可动态添加
tom.name = '汤姆'
tom.age = 5
print(tom.name,tom.age)

#调用实例方法
tom.eat()
tom.sleep()

__str__方法
python类内置方法,该方法必须返回一个字符串,当你重写了__str__的返回值后,使用print打印对象,就会打印出__str__的返回值

示例

class Person:
	def __str__(self):
		return '我叫%s,今年%s岁'%(self.name,self.age)
#创建一个人对象
p=Person()
p.name = '库里'
p.age = '32'
print(p)

__init__方法
python类中自带的方法,它为初始化方法,当给这个类创建一个对象后会自动调用该方法,可以进行初始化设置
示例

class Cat:
      def __str__(self):
          return 'name:%s,age:%s,color:%s'%(self.name, self.age, self.color)
          
      def __init__(self, name, age, color):
      	# print('初始化方法')
          self.name = name
          self.age = age
          self.color = color
jiafei = Cat('加菲',2,'橘黄色')
print(jiafei      

__del__方法
python类中自带的方法,当对象释放时,系统会自动调用,该方法一般做资源释放操作

示例

class Pig:
    def __del__ (self):
        print('析构方法')
        
pig = Pig()
del pig
print('释放资源')

常用的内置函数
__setattr__当设置属性时会自动调用
__getattr__当获取不存在的属性时会自动触发
__delattr__销毁对象的指定属性时会自动触发

class Person:
	def __init__(self,name):
		print('初始化方法')
		self.name = name
	
	def __setattr__(self,key,value):
		print(key,value)
		self.__dict__[key] = value
	
	def __getattr__(self,item):
		if item =='age':
			return 18
		else:
			return '保密'

	def __delattr__(self,item):
		print(item,'属性即将销毁') 

xiaoming = Person('小明')
#xiaoming.name = '小明'

print(xiaoming.age)
print(xiaoming.height)

print(xiaoming.__dict__)

del xiaoming.name
print(over)
	

__setitem__将对象当做字典操作时,添加或在设置属性时自动触发
__getitem__将对象当做字典操作时,根据键获取值时会自动触发
__delitem__将对象当做字典操作时,根据键销毁属性时会自动触发

class Person:
      def __setitem__(self, key, value):
          # print(key, value)
          self.__dict__[key] = value

      def __getitem__(self, item):
          # print(item)
          return self.__dict__.get(item)
          
      def __delitem__(self, key):
          print(key, '属性即将销毁')
          del self.__dict__[key]
            
xiaoming = Person()
# xiaoming.name = '小明'
# print(xiaoming.name)

xiaoming['name'] = '小明'
print(xiaoming['name'])

del xiaoming['name']
print(xiaoming['name'])     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值