定义类:类名怎么定义?使用class 来定义一个类
class 类名:类名- -般需要遵守大驼峰命名法,每一个单词的首字母都大写
class Student(object): # 关注这个类有哪些特征和行为#在_ init_ 方法里,以参数的形式定义特征,我们称之为属性def __init__ (self, name, age, height):self.name = nameself.age = ageself.height = height#行为定义为一个个函数def run(self):print('正在跑步')def eat(self):print('正在吃东西')#Student 类创立了两个实例对象s1,s2#Student() ==>会自动调用_ init__方法s1 = Student('小朋',18,1.75)s2 = Student('小美丽',17,1.65)s1.run()s2.eat()
class Student(object):def __init__(self, x, y):self.name = xself.age = y# Student('张三',18) 这段代码具体做了什么呢?#1.调用__new__ 方法,用来申请内存空间# 2.调用_ .init_ 方法传入参数,将self 指向创建好的内存空间,填充数据# 3.变量s1也指向创建好的内存空间s1 = Student('张三',18)print('s1的名字是',s1. name)
class Student(object):def __init__(self, x, y):self.name = xself.age = ydef say_hello(self):print('大家好,我是', self.name)# Student('张三',18) 这段代码具体做了什么呢?# 1.调用__new__ 方法,用来申请内存空间# 2.调用_ .init_ 方法传入参数,将self 指向创建好的内存空间,填充数据# 3.变量s1也指向创建好的内存空间s1 = Student('张三', 18)s1.say_hello()print('s1的名字是', s1.name)print('----')s2 = Student('jack', 21)s2.say_hello()
class renlei:#类属性,能被所有实例共享shengao=1.75def __init__(self):print('我是人')def say(self):print('能说')return"漂亮"zhonguoren=renlei()print(zhonguoren.say())print(zhonguoren.shengao)
1.不需要手动调用,会在合适的时机自动调用
2.这些方法,都是使用开始,使用 结束 3.方法名都是系统规定好的,在合适的时机自己调用
class Person(object):#在创建对象时,会自动调用这个方法def __init__(self, name, age):print('_ init_ 方 法被调用了')self.name = nameself.age= agep = Person(' zhangsan', 18)
class Amiml:# 构造方法def __init__(self,lb):self.lb=lbdef getlb(self):return self.lbamiml=Amiml("鸟类")print(amiml.lb)
继承
class A(object):def demo_a(self):print('我是A类里的方法demo_ _a')class B(object):def demo_b(self):print( '我是B类里的方法demo_ _b')class C(A,B):passc=C ()c.demo_a()c.demo_b()
如果子类存在构造方法,I继承关系成立后,最终的结果也如果子类存在构造方法,I继承关系成立后,最终的结果也
class Amiml:# 构造方法def __init__(self,lb):self.lb=lbdef getlb(self):return self.lbclass Dog(Amiml):def __init__(self):print("汪汪")amiml=Amiml("鸟类")print(amiml.lb)dog=Dog()
添加实例属性
class Person:def __init__(self, name, age):self.name = nameself.age = agep = Person("皮皮", 1)# 动态添加属性# 1,以下是添加实例属性的两种方式p.address = "义乌"setattr(p, "gender", "男") # 为p对象添加了一个名为gender的属性,存储的值为“男”print("名字是%s 年龄是%d 地址是%s 性别是%s" % (p.name, p.age, p.address, p.gender))print("名字是%s 年龄是%d 地址是%s 性别是%s" % (p.name, p.age, p.address, getattr(p, "gender")))# 2,添加对象属性 类名.属性名Person.CLS_ID = 110print(p.CLS_ID)
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号