一、类
新式类:
class Human(object):
def people(self):
print("I am a human")
二、动态绑定属性
- 1.动态为对象绑定属性时,给哪个对象绑定了属性,只能哪个对象有该属性,其他对象是没有的
- 2.如果在方法中引用了该属性,那么注释没有该属性的对象,调用这个方法时,就报错
class Human(object):
def eat(self,food):
print(self.name,"在吃",food)
tom = Human()
tom.name = 'Tom'
tom.eat("苹果")
rose = Human()
rose.eat("香蕉")# 未进行属性设置,会报错
三、_init_方法
- _init_方法是一个魔法方法,命名规则是前后各有两个下划线
- 魔法方法是python当中预设好的,具有特定功能的方法,一般这种方法,不需要手动调用,会自动调用执行
- 该方法会在创建对象的时候自动调用
- 调用时,这个方法用来为对象进行初始化
class Dog(object):
def __init__(self,name,age):
print("Init", self)
self.name = name
self.age = age
def show(self):
print(self.name,self.age)
四、_str_方法
- 当使用str()做类型转换时,会自动调用该方法
- 该方法返回一个字符串值
- 如果需要将对象的信息按照一定的格式进行格式化,那么可以在方法里面进行格式修饰,修饰完后,可以将这个格式化字符串返回,让str()方法在执行时,得到该对象转换的字符串类型
- 格式化对象
class Dog(object):
def __init__(self,name,age,height):
self.name = name
self.age = age
self.height = height
def show(self):
print(self.name,self.age)
def __str__(self):
s = self.name.ljust(10) + str(self.age).ljust(5) + self.height.ljust(10)
return s
tom = Dog('To',1,'10cm')
print(str(tom))
五、_del_方法
- 该方法用来在删除对象时,回收对象占的资源
def __del__(self):
del self.name
del tom# 手动销毁