码迷,mamicode.com
首页 > 编程语言 > 详细

2018-07-04-Python全栈开发day25-静态属性、类方法、静态方法以及组合

时间:2018-07-04 23:37:51      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:pytho   sda   其他   功能   课程   ini   save   back   数据   

1.静态属性property

  作用:改变类中方法的调用方式,不需要加括号,看起来和数据属性的调用方式相同

  

class Fangjian():
    tag=888
    def __init__(self,name,owner,wedth,length):
        self.name=name
        self.owner=owner
        self.wedth=wedth
        self.length=length
    @property
    def cal(self):
        return self.wedth*self.length
p1=Fangjian(yehaibin,xuzheng,50,80)
a=p1.cal#不需要括号

2.类方法 classmethod

  作用:类中的函数属性可以使用类来直接调用,但是需要创建一个实例,这样实例和类就绑定到一块了,需要一种方式,来直接调用类中的方法

  

class Fangjian():
    tag=888
    def __init__(self,name,owner,wedth,length):
        self.name=name
        self.owner=owner
        self.wedth=wedth
        self.length=length
@classmethod#只是给类用的,实例不要用
    def class_method(cls):
        print(this is class`s method)
Fangjian.class_method()

3.静态方法staticmethod

  作用:类似于类的工具包,在方法中不含有类和实例的调用,只是实现一个功能而已,例如输出

  

class Fangjian():
    tag=888
    def __init__(self,name,owner,wedth,length):
        self.name=name
        self.owner=owner
        self.wedth=wedth
        self.length=lengt
 @staticmethod
    def test12():
        print(this is a test staticmethod)
p1=Fangjian(yehaibin,xuzheng,50,80)
Fangjian.test12()
p1.test12()#类和实例都可以直接调用并且使用

4.组合

  最直观的感受就是认清楚,类的方法其实就是一个字典,然后在字典中进行取值

  

#自己做一个选课系统#组合
#目的:
class School():#定义学校类, def __init__(self,name,destin): self.name=name self.destin=destin class Course: def __init__(self,name,price,priod,school): self.name=name self.prine=price self.priod=priod self.school=school#这是将课程和学校进行关联 school1=School(sdau,shandong) school2=School(sdau2,shandong2) school3=School(sdau3,shandong3) # sdau=School(‘sdau‘,‘shandong‘) # python=Course(‘python‘,‘100‘,‘150‘,sdau.name) # print(python.school)#这是自己输入的值 #尝试让用户进行判断并且输入信息 msg={ 1:school1, 2:school2, 3:school3 } while True: school_chioce=input(please chioce your school 1:school 2:schoo2 3:schoo3)#让学生进行选课,选择喜欢的学校 #msg[school_chioce]#获得了用户选择的实例 school_obj=msg[school_chioce]#之前已经实例化好了几所学校,学生选好学校之后,也就是选择实例化之后的学校的其他信息,可以调用实例的方法 course_name=input(please input your name) price = input(please input your price)#根据学生的选择来实例化课程 priod = input(please input your priod) final_course=Course(course_name,price,priod,msg[school_chioce]) print(this is you course %s %final_course.school.name,)
   if school_chioce==q: break

 5.组合测试part1

  

import pickle
class School:
    def __init__(self,name,addr,banji):
        self.name=name
        self.addr=addr
        self.banji=banji
    def save(self):
        with open(school.db,wb) as f:
            pickle.dump(self,f)
class Student:
    def __init__(self,school,banji):
        self.school=school
        self.banji=banji
class Lesson:
    def __init__(self,name,priod,price,addr):
        self.name=name
        self.priod=priod
        self.price=price
        self.addr=addr
class Teacher:
    def __init__(self,school):
        self.school=school
        ##############
school1=School(sdau,北京,{linux:1班,python:2班})#学校本来就是有的,让学生来选
school2=School(yingshangyizhong,上海,{go:3班})
#创建课程
lesson1=Lesson(python,50week,150,北京)#课程本来也就有的,让学生来选
lesson2=Lesson(linux,30week,60,北京)
lesson3=Lesson(go,100week,900,上海)

#学生选择
school_msg={
    1:school1,#对学校进行选择
    2:school2
}
lesson_msg={
    1:lesson1,
    2:lesson2,
    3:lesson3
}

school_chioce=input(plesae input your school\n1:sdau\n2:yingshangyizhong\n)
school_student=school_msg[school_chioce]#根据用户输入的数值,来确定选择的学校
if school_chioce==1:
    course_chioce=input(please input your course\n 1:python\n2:linux\n)
else:
    course_chioce = input(please input your course\n 3:go)
course_student=lesson_msg[course_chioce]#根据用户输入的数值来确定选择的课程
#此时学校和课程都选择好了,需要输出其他信息,比如说地点,班级
print(this is your school information:\nschool:%s\nbanji:%s\ndistination:%s]\n
      %(school_student.name,school_student.banji[course_student.name],course_student.addr))

 

2018-07-04-Python全栈开发day25-静态属性、类方法、静态方法以及组合

标签:pytho   sda   其他   功能   课程   ini   save   back   数据   

原文地址:https://www.cnblogs.com/hai125698/p/9265816.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!