1.类,实例化是根据类来创建对象
#类的实践
#创建一个人类
class Humans:#3.7版本不加括号
def __init__(self,name,sex,height):#血的教训init前后两条下划线,self不是类的关键字
self.name = name
self.sex = sex
self.height =height
def love(self):
"""拥有爱的能力"""
print("我能够爱"+self.name+'.')
def eat(self):
print(self.name+"很能吃")
def describe(self):
"""自我介绍"""
print("我叫"+self.name+',我是'+self.sex+',身高'+self.height+'cm.')
#调用
p=Humans('中国','成年人','很高')
p.describe()
2,.继承,基类就是父类,语法是:
class DerivedClassName(BaseClassName1):
若基类中有相同的方法名,子类使用时未指定时,python从左至右搜索 即方法在子类中未找到时,从左到右查找基类中是否包含方法
重写方法,直接重写方法名即可,没有关键字,super()调用父类方法
class Parent: # 定义父类
def myMethod(self):
print ('调用父类方法')
class Child(Parent): # 定义子类
def myMethod(self):
print ('调用子类方法')
c = Child() # 子类实例
c.myMethod() # 子类调用重写方法
super(Child,c).myMethod() #用子类对象调用父类已被覆盖的方法
3.类的私有方法,私有变量,前面加上"__"两条下划线,所谓私有,就是只能在内部访问,其他实例不能访问,类的方法第一个参数必须是self,也可以是this,表示类本身,字符串自定义
4.一些约定俗成的方法名:
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__truediv__: 除运算
__mod__: 求余运算
__pow__: 乘方