python面向对象

第一章 生成对象

一.面向对象编程

在python中所有的变量都是对象,

整数、浮点数、长整数、字符串、字典、列表在python中也都是对象。

         ||__所以他们可以直接使用一些函数。

         ||__从技术上来讲,当创建一个新的变量并且为它设置值时,我们正在创建该数据类型的一个实例。

让代码更加条理,这只是使用对象的好处之一,另外一个更有用的好处是继承。

oop面向对象编程在20世纪50年代就提出了,核心是把数据和函数绑定到一起【组织数据】

二.规划一个类

类:对象的蓝图。类为对象定义了方法和属性,并且设置了所有的默认值。

子类:当基于一个已有的类生成一个新类时,我们在对其子类化。子类得到父类的所有属性、默认值和函数。

》》》这个对象有什么属性?

》》》将如何改变这些属性?

》》》需要用一种特殊的的方法打印这个对象或者这个对象的某些部分吗?

第二章 生成类

一.生成一个基类的声明

>>>class Myclass(object):    #(object)这个定义类是新式的标准,增加类的额外特性
...    a=5                   #需要养成习惯
...    b=2
...    c="Hello"
...
>>>new_item=Myclass()    #创建实例,生成对象
>>>new_item.a
5
>>>new_item.a=10
>>>new_item.a
10

二.为类增加方法

1.定义类中的方法是类中的一个代码块,类中必须有一个参数【self】!

2.【self】表示用来调用该函数的任何对象;【self】是一个特例:它表示“对象中包含的所有内容”

    ||__因为我们需要使用当前对象中所存储的属性和方法。

>>>class Myclass(object):    #(object)这个定义类是新式的标准,增加类的额外特性
...    a=5                   #需要养成习惯
...    b=7
...    def print_a(self):
...        print "Hello! Here is a:{}".format(self.a)
...
>>>new_item=Myclass()    #创建实例,生成对象
>>>new_item.print_a()
Hello! Here is a:5

三.创建类的实例

__init__() 创建实例的时候,自动调用此构造方法。

      ||__注意:必须要使用self来在__init__( )函数中定义类的属性。

class Student(object):
    def __init__(self,name="",school="",garde=""):
        if no name:
            name=raw_input("What is the student's name?")
        if no school:
            school=raw_input("What is the student's school?")
        if no garde:
            garde=self.get_garde()
        self.name=name
        self.school=school
        self.grade=grade
        self.print_student()
    def get_garde(self):
        while True:
            grade=raw_input("What is the student's grade?[k,1-5]")
            if grade.lower() not in ['k','1','2','3','4','5']:
                print "i'm sorry, but {} isn't valid.".format(grade)
            else:
                return grade
    def print_student(self):
        print "Name:{}".format(self.name)
        print "School:{}".format(self.school)
        print "Grade:{}".format(self.grade)

def main():
    student1=Student()
    Student2=Student(name="shaoxing",grade="2",school="qinghua")

if __name__ == "__main__":
    main()
class Student(object):
    def __init__(self,name="",school="",garde=""):
        if no name:
            name=raw_input("What is the student's name?")
        if no school:
            school=raw_input("What is the student's school?")
        if no garde:
            garde=self.get_garde()
        self.name=name
        self.school=school
        self.grade=grade
        #减#self.print_student()
    def get_garde(self):
        while True:
            grade=raw_input("What is the student's grade?[k,1-5]")
            if grade.lower() not in ['k','1','2','3','4','5']:
                print "i'm sorry, but {} isn't valid.".format(grade)
            else:
                return grade
    def print_student(self):
        print "Name:{}".format(self.name)
        print "School:{}".format(self.school)
        print "Grade:{}".format(self.grade)
#增
def print_roster(students):
    pring "Students in the system"
    for student n students:
        print "*"*15
        student.print_student()


def main():
    student1=Student()
    Student2=Student(name="shaoxing",grade="2",school="qinghua")
    student3=Studeng(name="dapeng",grade="7",school="beida")
    students=[student1,student2,student3]#增
    print_roster(students)#增

if __name__ == "__main__":
    main()

第三章 通过扩展类来增加功能

【暂停下,完善下列表等等部分,然后再杀回来】

转载于:https://my.oschina.net/woailuo/blog/808678

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值