1. 首页
  2. IT资讯

未知领域系列:Python高级教程之面向对象

这期的Python学习教程主要为大家讲Python的高级部分:面向对象

未知领域系列:Python高级教程之面向对象

记录点

面向对象

  • 类 – class
  • 对象
class Student(): #定义一个类   name = '' #定义变量   age = 0   def print_file(self): #定义一个方法   print("name:"+self.name)   print('age:'+str(self.age)) #输出  student =Student() #实例化一个对象  student.print_file() #调用方法

【注】:self 在每个方法括号中都必须写上,这个相当于java中的 this 关键字。

但 self按严格来说它不是python的关键字,self可以是任何符合的字符串,只是python官方推荐使用 self 而已

类与对象:类像一个模板一样,可以产生各种各样的对象

  • 构造函数
 def __init__(self,name): #构造函数   self.name=name   self.source= 0   print(name) #调用实例变量 方式1   print(self.name) #调用实例变量 方式2   print(self.__class__.name)#调用类变量 方式1

部分特性和java差不多

类变量和实例变量

实例变量:通过实例对象调用的变量和在构造函数中定义过的 如上述构造函数类代码

print(name) #调用实例变量 方式1  print(self.name) #调用实例变量 方式2

类变量:通过类名直接调用的,或者在实例函数中使用 self.class.变量名调用的 如上述代码

print(self.__class__.name) #调用类变量 方式1  Student.name #调用类变量 方式2

方法

实例方法

就是一般的定义方法,关联实例对象

def show(self):  	pass

【注】:关键字 pass 相当于一个占位 在还没想好逻辑的时候可以使用它 反正代码报错

类方法

方法上使用装饰器 @classmethod 以及必传参数 cls

#类方法  @classmethod   def plus_sum(cls):   cls.sum +=1    print(cls.sum) #调用类变量

【注】: cls 字符串 和self的作用差不多,只是只能用在类方法上

在类方法中调用类变量的方式与实例方法不同

self.__calss__.name #实例方法调用类变量  cls.name #类方法调用类变量

静态方法

方法上使用装饰器 @staticmethod,和类方法的区别就是不用传cls,一般不推荐使用

 #静态方法   @staticmethod    def plus_sum():   pass

要点:一般保证数据的安全不能直接给数据赋值,要在方法中进行完成,方法中可以进行判断,体现了python的面向对象的封装性

私有

私有方法

在方法前面加 ‘__’ 双下划线

def __sum(self):  	pass

私有方法外部强行调用会报错

私有变量

在变量前面加 ‘__’ 双下划线

__name = '小米'

无法进行私有变量调用,

student = Student() #实例化  print(student.__name)

因为python的动态机制,这里其实是重新定义了一个变量 __name

可以使用 _dict _ 来查看当前对象的所以变量信息

print(student.__dict__) #输出详细

可以从输出的内容中可以看到,原来的变量变成了 类名加变量名 如:_Student__name

面向对象-继承

python的继承特性和java的继承特性差不多,相信有java继承的会更好的理解

父类

#父类 2019-8-28  class Human():   sum = 0   def __init__(self,name,age):   self.name=name   self.age=age   def show(self):   print("父类的方法")

子类

from m4 import Human #导入父类 m4为文件名 Human为类名  class Student(Human): #继承父类      def __init__(self,school,name,age):   self.school=school      #调用父类的构造函数 需要加入self 方式一   Human.__init__(self,name,age)   #方式二 使用super关键字   super(Student,self).__init__(name,age)      def out(self):   #调用父类方法   super(Student,self).show()   print("加油")  ss = Student('社会','44',5)  print(ss.name)  print(ss.age)  ss.out()

调用父类的两种方式

方式一

 #调用父类的构造函数 需要加入self 方式一   Human.__init__(self,name,age)

方式二

使用关键字 super

#方式二 使用super关键字  super(Student,self).__init__(name,age)

伙伴们有哪些不清楚的地方可以留言,更多的 Python教程也会继续为大家更新!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69923331/viewspace-2655734/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:℅傍ㄖ免沦陷dε鬼,转转请注明出处:http://www.cxybcw.com/193245.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code