面向对象:把很对事情找个对象取做,而不是亲自去做,就叫面向对象
例如:擦玻璃,扫地,买菜,洗衣服,做饭,这些事情如果没有对象,都需要自己亲自去做,如果有个保姆对象不需要自己去做,保姆去做,这个保姆就是个对象.
创建类(类就是对象):
class 类名:
属性
方法
#创建对象
类名() 引用= 类名();
#注释:
类名首字符需要大写用class修饰
方法用def修饰
例如:
class Student:
#属性
#初始化
def __init__(self):
print("nihao!")
#方法
def pay(self)
print("学生在玩....")
#创建对象
s = Student()
#调用函数/方法
s.pay():输出结果是 学生在玩....
#__init__方法是对象的初始化方法,当 s = Student()的时候该方法就会执行,self就会少s, s1=Student() 那么self就是s1
注释:play(self)中的self指的是s对象,如果s1对象调用play(self) self指的是s1,那个对象调用方法self指的就是谁
#给对象设置属性
s.name="张三"
s.age=12
以上代码是给对象设置属性,属性不需要定义到类里面
------------------------------------__init()__方法的使用-------------------------------------
例子:
class People:
def __init__(self,x,y ):
self.name=x #给该对象定义一个属性是name
self.age=y #给该对象定义一个属性是age
def __pay__():
print("%s年龄是:%s"%s(name,age))
p = People("李四",40) #给__init_里面传参数 即: __init__(p,"李四",40)
p.pay();输出结果是李四的年龄是40
注释:
__init()__方法里面的属性的的值默认是全部遍历,类里面所有的方法都可以使用,但是 该属性的值只有在该对象中有用,不同对象的值不能共享 p=("李四",40):其中"李四"和40只能在p对象中使用,p1=("张三",30):张三,30只能在p1中使用 p和p1之间的值不能共用
---------------------------------------__str__(self)方法的使用--------------------------------------------
clas Dog:
def __str__(self)"
return "把对象的地址值转换成字符串(toString)"
d =Dog();
print(d):
1.如果类里面没有写__str__(self)方法那么输出结果是该对象在内存中的地址值:0x000ff0
2.如果类里面写了__str__(self)方法那么输出结果是return的字符串:"把对象的地址值转换成字符串(toString)"