Python 面向对象编程

Python 面向对象编程

能够处理数据的代码块,被称作面向过程的编程方式。

类与对象是面向对象编程的两个主要方面。一个类(Class)能够创建一种新的类型(Type),其中对象(Object)就是类的实例(Instance)。

对象可以使用属于它的普通变量来存储数据。这种从属于对象或类的变量叫作字段(Field)。对象还可以使用属于类的函数来实现某些功能,这种函数叫作类的方法(Method)。这两个术语很重要,它有助于我们区分函数与变量,哪些是独立的,哪些又是属于类或对象的。总之,字段与方法通称类的属性(Attribute)。

self

类方法和普通函数只有一种特定的区别——前者必须有一个特定的名字,这个名字必须添加到参数列表的开头,但是不用再调用这个功能时为这个参数赋值,这种特定的变量引用的是对象本身,它被赋予self这一名称。

class Person:
    pass
p = Person
print(p)

方法

class Person:
    def say_hi(self):
        print('Hello,how are you?')
p = Person()
p.say_hi()

init_方法

该方法会在类的对象被实例化时立即运行。

class Person:
    def __init__(self,name):
        self.name = name

    def say_hi(self):
        print('Hello,my name is',self.name)

p = Person('CHEN')
p.say_hi()

类变量与对象变量

类变量:它们可以被属于该类的所有实例访问。该变量只有一个副本,当任何一个对象对类变量作出改变时,发生变动将在其它所有实例中得到体现。

对向变量:由类的每一个独立的对象或实例所拥有,每个对象都拥有属于它自己的字段的副本。

class Robot:
    population = 0
    def __init__(self,name):
        self.name = name
        print("Initializing {}".format(self.name))

        Robot.population +=1

    def die(self):
        print("{} is being destroyed!".format(self.name))
        Robot.population -= 1

        if Robot.population == 0:
            print("{} was the last one.".format(self.name))
        else:
            print("There are still {:d} robots working.".format(Robot.population))

    def say_hi(self):
        print("Greetings,my masters call me {}".format(self.name))

    @classmethod

    def how_many(cls):
        print("We have {:d} robots.".format(cls.population))

droid1 = Robot("R2-D2")
droid1.say_hi()
Robot.how_many()

droid2 = Robot("C-3P0")
droid2.say_hi()
droid2.how_many()

print("\nRobots can do some work here.\n")

print("Robots have finished their work.so let's destroy them.")
droid1.die()
droid2.die()

Robot.how_many()

继承

编写一款程序来追踪大学里的老师和学生。有一些是都具有的,另一些是他们独有的,一种很好的办法是,创建一个公共类叫做SchoolMember,然后让教师和学生从这个类中继承。

class SchoolMember:
    def __init__(self,name,age):
        self.name = name
        self.age = age
        print("(Initialized SchoolMember:{})".format(self.name))

    def tell(self):
        print('Name:"{}" Age:"{}"'.format(self.name,self.age),end=' ')

class Teacher(SchoolMember):
    def __init__(self,name,age,salary,course):
        SchoolMember.__init__(self,name,age)
        self.salary =salary
        self.course =course
        print("(Initialized Teacher:{})".format(self.name))

    def tell(self):
        SchoolMember.tell(self)
        print('Salary:"{:d}" Course one week:"{:d}"'.format(self.salary,self.course))

class Student(SchoolMember):
    def __init__(self,name,age,marks):
        SchoolMember.__init__(self,name,age)
        self.marks = marks
        print("(Initialized Student:{})".format(self.name))

    def tell(self):
        SchoolMember.tell(self)
        print('Marks:"{:d}"'.format(self.marks))

t = Teacher('Li',34,50000,4)
s = Student('Wang',14,99)

print()

members =[t,s]
for member in members:
    member.tell()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值