(1)定义类
class dog():
方法列表
(2)创建对象
对象名= 类名()
dog=dog()
(4)__init__方法
class Dog():
def __init__(self,legs,color):
self.legs=legs
self.color=color
dog=Dog(4,'黑色')
print(dog.legs)
print(dog.color)
__init__()
方法,在创建一个对象时默认被调用,不需要手动调用__init__(self)
中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那么__init__(self)
中出了self作为第一个形参外还需要2个形参,例如__init__(self,x,y)
__init__(self)
中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递进去
(5)__str__()方法
class Dog():
def __init__(self,legs,color):
self.legs=legs
self.color=color
def __str__(self):
msg="我的狗"+str(self.legs)+self.color
return msg
dog=Dog(4,'黑色')
print(dog)
我的狗4黑色
- 当使用print输出对象的时候,只要自己定义了
__str__(self)
方法,那么就会打印从在这个方法中return的数据
(6)单继承、重写父类的方法、调用父类的方法
a.继承
class Cat():
def __init__(self,name,color='白色'):
self.name=name
self.color=color
def run(self):
print("%s在跑"%self.name)
class Bosi(Cat):
def SetnewName(self,name):
self.name=name
def eat(self):
print("%s在吃"%self.name)
bs=Bosi("印度猫")
print(bs.name)
print(bs.color)
bs.eat()
bs.SetnewName("波斯猫")
bs.run()
印度猫
白色
印度猫在吃
波斯猫在跑
- 子类在继承的时候,在定义类时,小括号()中为父类的名字
- 父类的属性、方法,会被继承给子类
b.重写父类方法
class dog():
def sayhello(self):
print("sayhello.....1")
class alasijia(dog):
def sayhello(self):
print("sayhello.....2")
erha=alasijia()
erha.sayhello()
sayhello.....2
c.调用父类的方法
class dog():
def setname(self,name):
self.name=name
class alasijia(dog):
def getname(self,name):
super().setname(name)
初始化化调用示例
class B(A):
def __init__(self):
super().__init__()