在python面向对象编程中、属性分为_Python(基础)---类和面向对象编程

二、类的定义、对象的创建、属性和方法

2.1 类定义的简单语法

class 类名:

类体

注意点:

1)类名追寻标识符命名方式,见名知意,注意首字母大写。可以使用中文

2)注意冒号别忘写了,语法中没有大括号,使用缩进表示类体

2.2 属性和方法

一个普通的类的定义:

class Animal:

name = "biology"

def __init__(self,kind,color):

self.kind = kind

self.color = color

@staticmethod

def move():

str = "moving~"

print(str)

def desc(self):

print(f"这是一只{self.kind},它的颜色是{self.color}")

def __del__(self):

pass

属性:在以上例子中,name、self.kind、self.color都属于类的属性,它们也统称为成员变量(注意str不是属性),用来表示类或对象的特征

方法:类体中定义的函数叫做方法,其中 init和del分别叫构造函数和析构函数,用来表示类或对象的行为

2.3 静态和非静态

某些方法和属性,如果在一个类中是共通的,我们称之为类属性和类方法,或者称他们为静态属性和静态方法,例如上一段代码中的属性name和方法move,所有的动物都叫做生物,所有的动物都会动

反之,某些属性和方法因对象的不同而不同,我们称之为实例属性和实例方法,例如上一段代码中的属性self.kind和方法desc,动物的种类和颜色因对象的不同而改变

2.4 对象的创建

对象创建的语法:

类名(实参列表)

例如:

Animal("dog","yellow")

以上的代码就创建了一个Animal的对象,并且它会返回所创建对象的内存地址,我们把它赋值给一个变量dog

dog = Animal("dog","yellow")

如此一来我们就获得了一个对象,并用dog来指向它,这个dog变量我们称之为引用

如何获得类中的属性和方法

静态属性

#类名.静态属性名

print(Animal.name)

"""

输出

biology

"""

**注意:

1)类名后面不要加括号,加了括号就表示对象了

2)上面代码的执行过程中没有涉及到对象的创建和销毁,所以不会执行init和del方法

静态方法

#类名.静态方法名(实参列表)

Animal.move()

"""

输出

moving~

"""

注意:

1)使用@staticmethod装饰器时,函数形参列表中不要加cls。当使用@classmethod时形参中才加上cls

实例属性

#引用.实例变量

dog = Animal("dog", "yellow")

print(dog.kind)

print(Animal("dog", "black").color)

"""

输出

dog

该对象被gc回收

black

该对象被gc回收

"""

注意两种不同的语法形式

实例方法

#引用.实例方法

dog = Animal("dog", "yellow")

dog.desc()

Animal("dog", "black").desc()

"""

输出

这是一只dog,它的颜色是yellow

这是一只dog,它的颜色是black

"""

注意两种不同的语法形式

注意:

1) 类级别下不能调用实例属性和函数,但是实例可以调用类级别的属性和方法

例如:

print(Animal.kind)

"""

输出

AttributeError: type object 'Animal' has no attribute 'kind'

"""

报错:AttributeError

print(Animal("dog","yellow").name)

"""

输出

biology

"""

符合实际世界的逻辑:抽象出来的“动物类”没有“种类”之说,但是dog是“动物类”,当然具有“biology”这一属性

2)静态函数不可直接使用实例变量,可以使用静态变量。实例函数可以使用实例变量和静态变量

3)静态变量的定义在方法外,实例变量的定义最好在init方法中(在方法中也可以定义实例变量,但是不太符合逻辑,此事IDE会报错)

4)静态函数使用@staticmethod或@classmethod修饰,实例方法不用修饰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值