类、构造器、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()
__str__源代码

 

深入了解:点击前往

 

posted @ 2017-05-22 15:21  寻渝记  阅读(662)  评论(0)    收藏  举报