找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手

python中的类,对象,方法及其特性

[复制链接]
python中的类1、类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。2、变量称为属性3、方法称为行为4、对象是类的实例。在教室里面的每个同学都是人类这个类的一个具体的对象,然后对象又称为实例【实际存在的例子】5、实例化:根据一个类创建不同的对象的过程叫做实例化6、方法:就是类里面定义的函数7、类变量:人类所共有的属性   head = 1
8、实例变量:对象或者实例所独有的9、类是用class 来定义,类名称首字母要大写class People(object): #新式类class People:   经典类10、类里面定义一个方法需要空一个tab11、如果不定义方法就使用默认的构造方法
构造函数;里面一般就是用来定义实例变量的,在调用实例方法的时候会自动优先执行构造函数class People(object):       #object称为父类,基类,也是一切的父类
    head=1          #这是类变量

    构造函数,也叫构造方法,作用是为了创建对象用的
    双下划线表示私有的方法
    def __init__(self,name,age):      # name为形式参数
        self.a=name         # self.a称为实例变量,实例变量是实例独有的,self是当前类的对象本身
        self.age=age        #age 为私有变量


        实例方法
    def play(self):
        print(self.a+'找点乐子')

创建一个对象
实例化一个对象
p=People('小刘',18)          # 创建一个对象p,这个对象名字叫小刘
p2=People('毛毛')
p.play()
p2.play()
实例方法
    def play(self):
        print(self.a+'去打篮球')
    @classmethod
    def func2(cls):
        print('这是个类方法')

    @staticmethod
    def f():
        print('这是个静态方法')

    def __f2(self):
        print('私有方法')

    可通过创建一个实例方法来应用私有变量的结果
    def f3(self):
        return self.__f2()

    def f4(self):
        return self.__age

p=People('小刘',18)

1、类和对象调用类变量,实例变量
print(People.head)
print(People.name)
print(p.head)
print(p.name)

2、类和对象调用实例方法,类方法静态方法
People.play(p)      # 类调用实例方法报错,但是传入一个对象,表示具体哪个对象去打篮球
People.func2()      # 类调用类方法
People.f()      # 类调用静态方法
p.play()        # 对象调用实例方法
p.func2()       # 对象调用类方法
p.f()       # 对象调用静态方法

3、类和对象调用私有方法和私有变量
People.__f2     # 报错
p.f2()          # 两个调用都会报错
People.f3()     # 报错,类不能直接调用实例方法
p.f3()          # 对象调用实例方法

print(p.__age)      # 对象不能调用私有变量
print(p.f4())       # 对象调用实例方法引用到的私有变量结果
print(People.f4(p))     #类调用实例方法需要传对象

调用私有方法和私有变量总结:
私有方法和私有变量都不能直接被类和对象所调用,必须先在类的内部通过创建实例方法引用私有变量和私有方法,并将其结果进行返回给实例方法。然后再再类外部通过类和对象调用实例方法,就可以得到私有变量和私有方法的结果

python 中类的三大特性
2、封装特性
class People(object):
    def __init__(self,name):
        self.__name = name      # 双下划线开头代表为私有变量,,只能在内部使用

    def setName(self,newname):
        self.__name = newname       # 设置值

    def getName(self):
        return self.__name      # 取值

p = People("xiaowang")
print(p.__name) #报错 对象和类不能直接调用私有变量和私有方法
p.setName("xiaoxiaoming")
print(p.getName())

继承
class Father(object):
    def __init__(self):     # 默认构造函数
        pass
    def smoke(self):
        print('抽烟')
    def rich(self):
        print('有钱')
    def play(self):
        print('打牌')
class Son(Father):      # 子类继承父类,也可继承多个父类class Son(Father,A,B)
    def __init__(self):
        Father.__init__(self)       # 继承父类构造函数

    def car(self):
        print('')
    def girl(self):
        print('美女')
    def play(self):
        print('打球')
a=Son()
a.car()     # 车     保留自身特性
a.smoke()   # 抽烟    调用父类特性
a.rich()    # 有钱
a.play()    # 打球    调用自身特性

多态(方法的重写)

class Animal(object):
    def talk(self):
        print('我是动物')

class Cat(Animal):
    def talk(self):
        print('喵喵')

class Dog(Animal):
    def talk(self):
        print('旺旺')

a=Animal()
a.talk()        # 我是动物
b=Cat()
b.talk()        # 喵喵
c=Dog()
c.talk()        # 旺旺




分享至 : QQ空间
收藏

1 个回复

倒序浏览
666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册