Python学习笔记(类和对象)

类和对象

1.类的属性

在Python中,构造函数就是类的__init__方法,当一个类定义了__init__方法后,类在实例化时会自动调用__init__方法,用于创建新的类实例。在构造方法中我们可以初始化一些属性(或称成员变量、类变量)。

class Dog:
    def __init__(self,name)
    	self.name=name
        self.age=3
dog=Dog("旺财")
print(dog.name) #旺财
print(dog.age)  #3

类中定义的方法第一个参数必须是“self”,即def play(self)

私有属性可用dog.__name加两条下划线的形式,只能在类内进行修改。私有方法同理。

2.继承

定义要从哪个父类继承,只需在定义子类的名字后面的括号中填入父类的名字即可,如:

class Animal:
    def __init__(self,name)
    	self.name=name
        self.age=3
class Dog(Animal):
    pass

3.多态

多态的意思就是多种形态。多态意味着即使不知道变量所引用的对象是什么类型,也能对对象进行操作。多态会根据类的不同表现出不同的行为。

(1)继承方式实现多态
class Animal:
    def say(self):
        print("Animal")
class Dog(Animal):
    def say(self):
        print("Dog")
class Cat(Animal):
    def say(self):
        print("Cat")
dog=Dog()
dog.say()  #Dog
cat=cat()
cat.say()  #cat

ps:判断一个实例是否是某个对象可以用isinstance函数,格式为isinstance(dog,Dog),返回TrueorFalse

(2)函数参数实现多态
#接上例
def animal_say(animal:Animal)
	animal.say()
animal_say(dog)
animal_say(cat)
(3)鸭子类型

​ 鸭子类型中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口决定的,而是由当前方法和属性的集合决定的。

class Dog:
	def say(self):
        print("Dog")
class Cat:
    def say(self):
        print("Cat")
def animal_say(animal): #编写一个函数,使它接受一个类型为鸭子的对象
    animal.say()
dog=Dog()
cat=Cat()
animal_say(dog)

4.静态方法和类方法:

(1)静态方法:

​ 定义静态方法时,在定义函数的上面一行添加“@staticmethod”,且静态方法不再有第一个默认参数“self”,本身也不能调用成员变量和成员方法。

class Animal
	name="动物"
    @staticmethod
    def play()
    	print("Playing")
Animal.play()
(2)类方法

​ 类方法将该方法绑定在定义的类上,而不是绑定在实例上。在定义函数的上面一行添加“@classmethod”,有初始参数"cls",类方法指向的是定义的类本身,类方法可以读取和修改类变量。

class Animal
	name="动物"
    @classmethod
    def play(cls)
    	print(c"Playing")
Animal.play()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值