Python进阶之一
希望前面两篇Pyhon的基础知识对于刚接触Python的新手有点用,接下来我会写面向对象方面的知识
首先说一下继承吧。什么是继承呢,简单点说就是儿子继承老子的家产,比方说我们创建了一个people类这个类里面有name,有age等。
然后我们在创建一个student类这个类里面有stuID,有class等。我们让student继承people,那么我们在调用student的时候也可以调用people
里面的属性了。
代码如下:
class People: def __init__(self,name,age): self.__dict__["name"]=name self.__dict__["age"]=age def __setattr__(self, key, value): self.__dict__[key]=value def __getattr__(self, item): return self.__dict__[item] def show(self): print("我的名字是",self.name) #Student类继承People class Student(People): a=0 #这个就是静态属性 def __init__(self,name,age,id,stuClass): super().__init__(name,age) self.__dict__["id"] = id #实例属性 self.__dict__["stuClass"] = stuClass def __setattr__(self, key, value): self.__dict__[key]=value def __getattr__(self, item): return self.__dict__[item] def show(self): super().show() print("我的年龄是", self.__dict__["age"]) s=Student("hans",21,"12121",2) #类的实例化 print(s.name) #输出hans s.show() #先执行父类在执行子类 子类重写父类的方法
1.继承
上面的代码比如Student就继承了People,所以Student可以调用People里面的属性和方法,上面代码上都有标注,就不在累述了。
2.实例化
在上面代码中s=Student()这个就是类的实例化了,括号里面写的是具体要传的参数
3.访问修饰符(没有直接的访问修饰符)
public 公开的 : 任何方法都可以调用
private 私有的 : 只有自己可以访问 __xxx(在属性的前面加两个下划线)
protected 保护 : 只有自己和子类可访问 _xxx(在属性前面加一个下划线)
4.静态成员
例如上面代码中a就是静态属性
静态方法s=Student() Student.show(s) 静态方法用类名直接调用,需要传入一个实例
5.类里面属性的get和set
在上面代码中在Python里面直接重写getattr和setattr
好了这篇就到这里了,如有错误请留言,谢谢:)