python-class(1)

 1 #!/usr/bin/env python
 2 #-*- coding:utf-8 -*-
 3 ############################
 4 #File Name: class1.py
 5 #Author: frank
 6 #Mail: frank0903@aliyun.com
 7 #Created Time:2017-09-04 13:35:27
 8 ############################
 9 
10 #self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。
11 #self 不是 python 关键字,我们把他换成 self1 也是可以正常执行的
12 class Testself:
13     def prt(self1):
14         print (self1)
15         print (self1.__class__)
16 
17 t = Testself()
18 t.prt()
19 
20 class Employee:
21     'base class of all employees'
22     empCount = 0    #类变量
23     
24     def __init__(self, name, salary):   #构造函数
25         self.name = name                #self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
26         self.salary = salary
27         Employee.empCount += 1
28 
29     def displayCount(self):
30         print ("Total Employee %d" % Employee.empCount)
31 
32     def displayEmployee(self):
33         #print ("Name:",self.name, ", Salary:", self.salary)
34         print ("Name:%s, Salary:%d"%(self.name,self.salary))
35 
36 #类的内置属性
37 print ("Employee.__doc__:", Employee.__doc__)
38 print ("Employee.__name__:", Employee.__name__)
39 print ("Employee.__module__:", Employee.__module__)
40 print ("Employee.__bases__:", Employee.__bases__)
41 print ("Employee.__dict__:", Employee.__dict__)
42 
43 emp1 = Employee("one", 100)
44 emp2 = Employee("two", 200)
45 
46 emp1.displayCount()
47 print ("Total Employee %d" % Employee.empCount)
48 emp1.displayEmployee()
49 emp2.displayEmployee()
50 
51 #添加,删除,修改类的属性
52 emp1.age=7
53 emp1.age=8
54 del emp1.age
55 
56 #getattr(obj, name[, default]) : 访问对象的属性。
57 #hasattr(obj,name) : 检查是否存在一个属性。
58 #setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性。
59 #delattr(obj, name) : 删除属性。
60 
61 print hasattr(emp1, 'age')    # 如果存在 'age' 属性返回 True。
62 print setattr(emp1, 'age', 1) # 添加属性 'age' 值为 8
63 print getattr(emp1, 'age', 'not find')    # 返回 'age' 属性的值
64 print delattr(emp1, 'age')    # 删除属性 'age'
65 
66 #类的内置属性
67 print ("Employee.__doc__:", Employee.__doc__)
68 print ("Employee.__name__:", Employee.__name__)
69 print ("Employee.__module__:", Employee.__module__)
70 print ("Employee.__bases__:", Employee.__bases__)
71 print ("Employee.__dict__:", Employee.__dict__)

 

posted @ 2017-09-05 08:50  suonikeyinsu  Views(156)  Comments(0Edit  收藏  举报