1.定义
类:有共同的属性
对象:把值给那个名称,这个名称叫做这个对象
2,应用
(1)创建类
class Dog: #大驼峰命名
def sleep(self):
print('睡觉了。。。。')
def eat(self):
print('吃东西了。。。。')
dog=Dog()
dog.sleep()
dog.eat()
2.self
class Person:
def eat(self):
print('eat方法中的self:',id(self))
print('吃。。。')
def sleep(self):
print('sleep方法中的self:',id(self))
print('睡觉。。。')
per=Person()
per.eat()
per.sleep()
print('对象的id--->',id(per))
print('------------')
per1=Person()
per1.eat()
per1.sleep()
print('对象的id---->',id(per1))
输出:
eat方法中的self: 18745608
吃。。。
sleep方法中的self: 18745608
睡觉。。。
对象的id---> 18745608
------------
eat方法中的self: 18745832
吃。。。
sleep方法中的self: 18745832
睡觉。。。
对象的id----> 18745832
不同对象的id都不同,同对象的id相同
3.init
(1)默认
class Cat:
def __init__(self):
print('我是初始化方法')
self.name='tom' #这是变成self的属性
cat=Cat()
print(cat.name)
cat1=Cat()
print(cat1.name)
输出:
(2)利用参数设置初始值
在调用__init__()方法的时候设置初始值
格式:init(self,aeg1,arg2…)
对象调用时:dog=Dog(‘aa’,‘bb’…) 实参和形参一一对应
class Dog:
def __init__(self,new_name,new_age):
self.new_name=new_name
self.new_age=new_age
def introduce(self):
print('%s的年龄是:%d' %(self.new_name,self.new_age))
dog=Dog('大白',2)
dog.introduce() #大白的年龄是:2
dog1=Dog('小墨',5)
dog1.introduce() #小墨的年龄是:5
4__str__
打印对象的名称时默认调用的是__str__()方法
此方法默认返回的是对象的内存地址。
可以冲写__str__打印对象保存的信息
class Dog:
def __init__(self,new_name,new_age):
self.new_age=new_age
self.nem_name=new_name
def __str__(self):
return '%s的年龄是:%d'%(self.nem_name,self.new_age)
dog =Dog("张三",20)
print(dog) #张三的年龄是:20
在类的外部增加属性
方式:对象名.属性名=值 (不推荐使用)