创建员工类,员工有姓名和薪资属性,定义类和创建实例对象调用方法
class Employee:
emp_count=0
def __init__(self,name,salary):
self.name=name
self.salary=salary
Employee.emp_count+=1
def display_count(self):
print("员工总数%d"%Employee.emp_count)
def display_employee(self):
print("姓名:",self.name,",薪资:",self.salary)
#创建Employee类的第一个对象
emp1=Employee("Zero",2000)
#创建Employee类的第二个对象
emp2=Employee("Manni",5000)
emp1.display_employee()
emp2.display_employee()
print("员工总数: %d" % Employee.emp_count)
self代表类的实例,self在定义类的方法时是必须要有的,在调用时不必传入相应的参数吗,它是被系统自动传入的。
实例化的对象通过__init__方法接收参数
2、继承实例
class Person:
def __init__(self,name,age,gender):
self.name=name
self.age=age
self.gender=gender
class Student(Person):
def show(self):
print('姓名:',self.name,'年龄:',self.age,'性别:',self.gender)
# print("名字:",self.name)
# print("年龄:",self.age)
# print("性别:",self.gender)
lilei=Student('李磊','20','男')
lilei.show()
hanmeimei=Student('韩梅梅','21','女')
hanmeimei.show()
运行结果:
姓名: 李磊 年龄: 20 性别: 男
姓名: 韩梅梅 年龄: 21 性别: 女
3、家庭Familly类
class Familly():
def __init__(self,surname,num,age):
self.surname=surname
self.num=num;
self.age=age
def get_surname(self):
if isinstance(self.surname,str):
return self.surname
def get_num(self):
if isinstance(self.num,int):
return self.num
def get_age(self):
sum=0
for i in self.age:
sum=sum+i
if isinstance(sum,int):
return round(sum/len(self.age))
xiaok=Familly('开',4,[20,24,45,40])
print("姓氏:",xiaok.get_surname())
print("人数:",xiaok.get_num())
print("家庭平均年龄:",xiaok.get_age())
4、使用@property给screen类加上width和height属性,以及只读属性resolution
class Screen(object):
@property
def width(self):
return self._width
@width.setter
def width(self,value):
self._width=value
@property
def height(self):
return self._height
@height.setter
def height(self,value):
self._height=value
@property
def resolution(self):
return self.width*self._height
#测试
s=Screen()
s.width=1024
s.height=768
print('resolutin=',s.resolution)
if s.resolution==1024*768:
print('测试通过')
else:
print('测试失败')
解析:分别定义Screen类的width与height方法,每个方法中都有getter与setter方法,使用@property将方法变成属性。