前言:
当前大家对“python具备的特点”大概比较着重,大家都需要分析一些“python具备的特点”的相关知识。那么小编同时在网摘上搜集了一些对于“python具备的特点””的相关文章,希望大家能喜欢,姐妹们快快来学习一下吧!继承:是面向对象编程最重要的特性之一,例如,我们每个人都从祖辈和父母那里继承了一些体貌特征,但每个人却又不同于父母,有自己独有的一些特性。在面向对象中被继承的类是父类或基类,新的类称为子类或派生类。通过继承不仅可以实现代码的重用,还可以理顺类与类之间的关系。
重写:父类的成员都会被子类继承,当父类中某个方法不完全适用子类,就需要在子类中重新父类方法。在子类中如果定义了__init__()方法时,子类是不会自动调用父类的__init__()方法,此时如果不手动添加,运行代码就会报错。需要在子类使用super()函数调用父类的__init__()方法,而且必须在首行。
封装:提高程序安全性,将属性、类包装到类中。python 中没有专门到修饰符用于属性到私有,如果属性不希望在类对象外部被访问,可以使用两个'_'。
多态:让具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容(功能)的函数。可以理解为一个事物的多种形态。调用同一个函数,传入不同的参数,实现不同的功能。
代码中还写了一些特殊的方法和特殊属性,可以注意下!!!
'''封装: 提高程序安全性,将属性、类包装到类中python 中没有专门到修饰符用于属性到私有,如果属性不希望在类对象外部被访问,可以使用两个'_''''class Studen: def __init__(self,name,age): self.name = name self.__age = age #不希望age在外部使用,前面加两个__ def show(self): print('nihal',self.name,self.__age) def __run(self): #私有方法 passst = Studen('za',18)st.show()print(st.name)# print(st.age) #不能访问age,因为age私有,但可以通过下面访问print(dir(st)) #可以查看属性和方法print(st._Studen__age) #在类但外部可以通过,_Studen__age这种方式访问'''继承:提高代码复用性class 子类名(父类1,父类2,父类3.....): pass如果一个类没有继承任何一个类,则默认继承object【注意】在继承中,子类但构造函数必须调用父类但构造函数'''class Person: def __init__(self,name,age): self.name = name self.age = age def info(self): print('姓名{0},年龄{1}'.format(self.name,self.age))class Student(Person): def __init__(self,name,age,score): super().__init__(name,age) #子类继承父类,在构造函数中必须用super调用父类构造函数 self.score = score def run(self): print(f'score is {self.score}') def info(self): #重写父类方法 super().info(); #调用父类方法 print(f'score is {self.score}')st = Student('ge',29,100)st.info()'''重写父类方法,super().父类方法'''st.info() #重写之后,先调用自己但方法'''object类: '''class Teacher(Person): def __init__(self): pass def __str__(self): print("重写此方法,返回对类对象但描述")'''多态:具有多种形态,不知道一个变量所引用但对象到底是什么类型,仍然可以通过这个变量调用方法,在运行过程中根据变量所引用对象但类型,动态决定调用哪个对象中但方法java是静态语言,其实现多态的三个必要条件1、继承2、方法重写3、父类引用指向子类对象动态语言崇尚"鸭子类型",只关注对象行为,不必关注对象'''class Animal: def eat(self): print('动物会吃')class Dog(Animal): def eat(self): print('狗吃肉')class Cat(Animal): def eat(self): print('猫吃鱼')class Person: def eat(self): print('人吃五谷杂粮') def __add__(self, other): return self.name +other.name#定义一个函数def fun(obj): obj.eat()fun(Cat())fun(Dog())fun(Animal())fun(Person()) #多态'''特殊方法和特殊属性属性:__dict__: 获得对象或实例对象所绑定的索引属性和方法的字典属性:__len__():通过重写__len__()方法,让内置函数len()的参数可以是自定义类型方法:__add__():通过重写__add__()方法,可是自定义对象具有'+'功能方法:__new__():用于创建对象方法:__init__():创建的对象进行初始化'''p = Person()print(p.__dict__) #实例对象的print(Person.__dict__) #类的print(p.__class__) #对象所属的类c = Cat()print(Cat.__base__) #父类元素,如果有多个父类,用basesa=10b=30c = a+bprint(c)c = a.__add__(b)print(c)p1 = Person()p1.name = 'zhang'p2 = Person()p2.name = 'san'print(p1.__add__(p2))print(p1+p2) #因为在Person类中写了__add__()方法,才能使用相加'''__new__与__init____new__ : 在前创建对象__init__:对已经创建的对象初始化'''class Car: def __new__(cls, *args, **kwargs): pass def __init__(self): pass
标签: #python具备的特点