类、构造器、get/set方法、__str__方法(类似于Java中的toString方法)
1 创建类
class 类名(父类名):
内容
注意:Python中的成员变量不用像Java那样单独罗列出来
2 构造器
def __init__(self, 成员变量1, 成员变量2): # 相当于Java中的构造器
self.__成员变量1 = 成员变量1
self.__成员变量2 = 成员变量2
注意:成员变量前面如果有两个下划线,就表示该成员变量是私有的,外部是不能使用的;必须通过get、set方法来进行调用或者修改;就相当于Java中有private修饰的成员变量一样;在外部不通过set方法来修改私有变量是不能成功的,看上去时成功的,其实是给相应的实例添加了一个共有的属性
3 get方法
def get__成员变量1(self): # 相当于Java中的get方法
return self.__成员变量1
4 set方法
def set__成员变量1(self, name): # 相当于Java中的set方法
self.__成员变量1 = name
5 一般成员方法
def show_info(self): # 定义一个函数:模仿Java中的toString方法
print(self.get__成员变量1() + " : " + str(self.get__成员变量2()))
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2017-05-22 10:07:27 4 # @Author : Your Name (you@example.org) 5 # @Link : http://example.org 6 # @Version : $Id$ 7 8 import os 9 10 class Student(object): #定义一个学生类 11 """docstring for Student""" 12 def __init__(self, name, age): # 相当于Java中的构造器 13 self.__name = name 14 self.__age = age 15 16 def get__name(self): # 相当于Java中的get方法 17 return self.__name 18 19 def get__age(self): 20 return self.__age 21 22 def set__name(self, name): # 相当于Java中的set方法 23 self.__name = name 24 25 def set__age(self, age): 26 self.__age = age 27 28 def show_info(self): # 定义一个函数 29 print(self.get__name() + " : " + str(self.get__age())) 30 31 def test(): 32 stu1 = Student("warrior", 24) # 实例化 33 stu1.show_info() # 调用对象的方法 34 stu1.set__name("fury") 35 print("=====================") 36 stu1.show_info() 37 print("=====================") 38 stu1.__name = "warrior" # 这条语句不是修改了__name,而是添加了一个属性 39 # 只要是 __name 这样的成员变量都会被Python解释器改成其他的变量名; 40 # 所以这里不是修改变量属性而是添加了一个变量属性 41 42 print(stu1.__name) 43 print("=====================") 44 print(stu1.get__name()) 45 46 47 if __name__ == '__main__': 48 test()
6 __str__方法
__str__类似于Java中的toString方法
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2017-05-22 10:07:27 4 # @Author : Your Name (you@example.org) 5 # @Link : http://example.org 6 # @Version : $Id$ 7 8 import os 9 10 class Person(object): 11 """docstring for Person""" 12 def __init__(self, name, age): 13 super(Person, self).__init__() 14 self.name = name 15 self.age = age 16 17 def __str__(self): # 相当于Java中的toString方法 18 return "Person object (name=%s)"%(self.name) 19 20 __repr__ = __str__ # 作用:在Python交互环境中输入实例对象名回车后的结果和print(实例对象名)保持一致 21 22 def test(): 23 p1 = Person("warrior", 24) 24 print(p1) 25 26 if __name__ == '__main__': 27 test()
深入了解:点击前往
浙公网安备 33010602011771号