python代码调试(六)——面向对象编程

本文深入探讨了Python面向对象编程的核心概念,包括类、方法、初始化方法、类变量与对象变量的区别,以及继承机制。通过具体代码示例,详细解释了如何创建类,定义方法,使用__init__方法初始化对象,理解类变量与对象变量的共享和独立特性,以及如何实现类的继承。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1类    2方法     3__init__方法     4类变量 与 对象变量    5继承

 

1:类

class Person:
    pass # 一个空的代码块
p = Person()
print(p)

2:方法

class Person:
    def say_hi(self):
        print('Hello, how are you?')
p = Person()
p.say_hi()
# 前面两行同样可以写作
# Person().say_hi()

3:__init__方法

class Person:
    def __init__(self, name):
        self.name = name
    def say_hi(self):
        print('Hello, my name is', self.name)
p = Person('Swaroop')
p.say_hi()
# 前面两行同时也能写作
# Person('Swaroop').say_hi()

4:类变量 与 对象变量

类变量(Class Variable)是共享的(Shared)它们可以被属于该类的所有实例访问。

对象变量(Object variable)由类的每一个独立的对象或实例所拥有。

# coding = UTF-8

class Robot:
	population = 0
	def __init__(self,name):
		self.name = name
		print("(Initializing {})".format(self.name))
		Robot.population += 1

	def die(self):
		print("{} is being destroyed!".format(self.name))
		Robot.population -= 1

	def say_hi(self):
		print("Greetings,my masters call me {}".format(self.name))

	def how_many(cls):
		print("we have {:d} robots.".format(cls.population))

droid1 = Robot("R2-D2")
droid1.say_hi()
# Robot.how_many()
droid1.how_many()

print('-------------------------')

droid2 = Robot("C-3P0")
droid2.say_hi()
# Robot.how_many()
#Robot.how_many()

5:继承

# coding = UTF - 8

class SchoolMember:
	def __init__(self,name,age):
		self.name  = name
		self.age = age
		print('(initialized schoolmember: {})'.format(self.name))

	def tell (self):
		print('name:"{}" age:"{}"'.format(self.name,self.age),end = "")

class Teacher(SchoolMember):
	def __init__(self,name,age,salary):
		SchoolMember.__init__(self,name,age)
		self.salary = salary
		print('(Initialized Teacher: {})'.format(self.name))

	def tell(self):
		SchoolMember.tell(self)
		print('salary: "{:d}"'.format(self.salary))

class Student(SchoolMember):
	def __init__(self, name, age, marks):
		SchoolMember.__init__(self, name, age)
		self.marks = marks
		print('(Initialized Student: {})'.format(self.name))

	def tell(self):
		SchoolMember.tell(self)
		print('Marks: "{:d}"'.format(self.marks))

t = Teacher('Mrs. Shrividya', 40, 30000)
s = Student('Swaroop', 25, 75)
print('——————————————————————————')
members = [t, s]
for member in members:
	member.tell()

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值