类的介绍1

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38689232/article/details/84891868

文章目录


# 1、类名:
命名规则:大驼峰
两种类:
经典类

class 类名:
	方法列表

** 新式类:**

class 类名(object):
	方法列表

#2、属性:

对象直接添加属性:

# 定义类
class Cat(object):
	def soud(self):
		print ("喵~~~~")

# 创建一个对象,并用变量cat1来保存它的引用
cat1 = Cat()
# 给这个对象添加属性
cat1.color = '白色'
cat1.foot_num = 4
# 猫的行为
cat1.soud()  #喵~~~~
print cat1.color   #白色

__init__设置属性: 创建对象后,python解释器默认调用__init__()方法;

class 类名(object):
	def __init__(self):
		# 各个属性
		self.属性名 = 属性值
  • init(self)中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那么除了self作为第一个形参外还需要2个形参
  • init(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递进去
  • 理解self:就是du对象本身。----某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可
    python的魔法方法:方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做“魔法”方法;
    当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据

保护对象的属性-----避免非法设置属性值
如果有一个对象,当需要对其进行修改属性时,有2种方法

  • 对象名.属性名 = 数据 ---->直接修改
  • 对象名.方法名() ---->间接修改
class Cat:
	def __init__(self,name):
		self.name = name
		self.age = 1

cat2 = Cat('小阿布')
# 修改属性
cat2.age = -2  # 这明显是不符合规则的

为了更好的保存属性安全,即不能随意修改,一般的处理方式为

  • 将属性定义为私有属性self.__name = name
  • 添加一个可以调用的方法,供调用
class Cat:
	def __init__(self,name):
		self.name = name
	
	def set_age(self, new_age):
		if age > 0 and age < 50:
			self.age = new_age
		else:
			self.age = 0

	def get_age(self):
		return self.age
# 创建对象
cat2 = Cat('小怂')
cat2.set_age(-10)
print cat2.get_age()   # 0

cat2.set_age(5)
print cat2.get_age()   # 5

** 如果在属性名前面加了2个下划线’__’,则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。**

#3、方法:def 方法名(self,args,…):

私有化方法__方法名(self,args,kwrg): 不能直接被调用,可用:对象._类名__方法名(参数) 进行调用

猜你喜欢

转载自blog.csdn.net/qq_38689232/article/details/84891868