当前位置: 首页 > wzjs >正文

网站推广教程北京seo不到首页不扣费

网站推广教程,北京seo不到首页不扣费,wordpress付费文章插件,营销策略分析目录 Pass占位符和缩进 类的初始化方法 类的普通方法 类的继承 作业 题目1:定义圆(Circle)类 题目2:定义长方形(Rectangle)类 题目3:图形工厂 类是对属性和方法的封装,可以理…

目录

Pass占位符和缩进

类的初始化方法

类的普通方法

类的继承

作业

题目1:定义圆(Circle)类

题目2:定义长方形(Rectangle)类

题目3:图形工厂


类是对属性和方法的封装,可以理解为模版,通过对模版实例化可以实现调用类的属性和方法。比如创建一个随机森林类,然后就可以调用它的训练和预测方法。

一个常见的类的定义包括了:
        1.关键字class
        2.类名
        3.语法固定符号冒号:
        4.一个初始化函数__init__(self)

注意:init左右各有2个下划线__,需要传入self这个特殊的参数。

Pass占位符和缩进

class ClassName: # 类名通常遵循大驼峰命名法 (UpperCamelCase),即每个单词的首字母都大写,class是定义类的关键词# 类的代码块 (可以包含属性定义、方法定义等)pass # pass 是一个占位符,表示这里暂时没有任何内容

很多时候,当规划好准备写一个函数、或者一个类,关键词定义后,会先用pass占位,避免运行错误,等到想好写什么再去补上

比如def、class这些定义的关键词后,必须有一个有占据缩进位置的代码块。

# 条件语句
x = 10
if x > 5:pass# 如果这里是空的,就会报错,可以注释试一下,即使x=1也会报错
else:print("x is not greater than 5")
# 循环语句
for i in range(3):pass # 循环体是空的
try:# 尝试执行的代码print("hh")
except SomeError:pass# 捕获到异常后,这里需要代码
finally:pass# 无论如何都会执行的代码块,也需要内容

总结:Python通过缩进来定义代码块的结构。当解释器遇到想def,class,if,for这样的语句,并且后面跟着冒号:时,它就期望接下来有一个或者多个缩进的语句来构成这个代码块。如果它没有找到任何缩进的语句(即代码块是空的),它就无法确定这个结构的范围,因此会抛出IndentationError。
pass语句的存在就是为了解决这个问题:它本身不执行任何操作,但是它是个有效的Python语句。所以,当你需要一个语法上存在的代码块,但又暂时不想在其中放入任何实际的逻辑时,pass就是一个完美的占位符,它告诉解释器:“这里有一个代码块,但它什么也不做。”

类的初始化方法

初始化方法又叫构造方法、特殊方法

class Teacher: # 这里不需要括号def __init__(self): #初始化方法,这里没有传入参数self.name = "Susan" # 给类定义一些属性self.subject = "English"self.age = 33Teacher = Teacher() # 创建一个Teacher类的实例
print(Teacher.name) # 输出: Susan
class Teacher:def __init__(self, name, age):# 初始化方法,传入了参数self.name = name # 外界的参数,需要通过self.xxx来复制给类自己的属性self.age = ageself.subject = "English"  # 这个属性仍然是在创建时就设定好的# 创建一个Teacher对象的例子,构造方法的参数必须
teacher = Teacher("Susan", 33) # 如果在初始化方法中设置了非默认的参数,那么外界就必须要传入才行
print(teacher.name)  # 输出: Susan
print(teacher.age)   # 输出: 33
print(teacher.subject)  # 输出: English

其中,self.xx是用来表明这个属性“归属于”类自己的(self)。比如self.name,就代表“自己的名字”,self等于“自己”,这个self指向类的实例化地址,传入的self.xx是它的属性。以后要是用它的属性值,即使是从外界参数传入的,前面也必须加上self.xx,否则传入的参数没价值。

类的普通方法

除了init方法,还包含一些普通方法(自己定义)

普通方法和init方法的差别在于,init方法是类的构造方法,当创建对象时,会自动调用init方法---只要你创建这个类对象了,这个init函数就会执行。

普通方法是只有你调用类的这个方法的时候,函数才会执行

class Teacher:def __init__(self):self.name = "Susan"self.subject = "English"self.age = 33def teach_class(self):print("上课中")def criticize(self):print("批评人")
t = Teacher()
t.teach_class()
t.criticize()
print(t.subject)
class Teacher:# 初始化方法接受参数以动态设置教师对的属性def __init__(self, name, subject, age):self.name = name self.subject = subjectself.age = age# 不是init的都是普通方法def teach_clas(self):print(f"{self.name}正在教{self.subject}.")def criticize(self,student_name):print(f"{self.name}正在批评{student_name}.")teacher = Teacher()teacher.teach_class()
teacher.criticize("小明")

Susan正在教English。

Susan正在批评小明。 

类的继承

在面向对象编程中,继承允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码复用和功能扩展。子类可以:
        1.复用父类的代码(无需重新实现)
        2.复写父类的方法(修改或增强功能)
        3.添加新的方法和属性(扩展功能)

# 先沿用之前定义的teacher类
class Teacher:def __init__(self, name, subject, age):self.name = nameself.subject = subjectself.age = agedef teach_lesson(self):print(f"{self.name}正在教{self.subject}。")def criticize(self, student_name):print(f"{self.name}正在批评{student_name}。")# 继承 Teacher 类,起名特级教师
class MasterTeacher(Teacher): # 1. 继承需要在括号中指定父类def __init__(self, name, subject, age, experience_years):# 2. 继承的时候需要调用父类的构造方法,所以需要传入父类的参数,同时也可以传入自己的参数# 调用父类的构造方法初始化基本属性super().__init__(name, subject, age) # 3. 调用父类的构造方法,这里的super()是一个内置函数,返回父类的实例# 4. 此时子类自动拥有了父类的属性和方法# 添加子类特有的属性self.experience_years = experience_years # 5. 子类特有的属性可以在这里定义# 重写父类方法,增强功能-----如果子类定义了与父类同名的方法,子类实例会优先调用子类的方法。def teach_lesson(self): # 6. 重写父类的方法print(f"{self.name}(特级教师)正在用高级方法教授{self.subject}。")# 新增子类特有的方法def give_lecture(self, topic): print(f"{self.name}正在举办关于{topic}的讲座。")# 创建子类实例
master = MasterTeacher("王教授", "数学", 45, 20)# 调用继承的方法
master.teach_lesson()     # 调用重写的父类的方法
master.criticize("李同学")  # 调用父类的方法,如果不修改方法,则可以直接继承父类的方法# 调用子类特有的方法
master.give_lecture("微积分")  # 调用子类新增的方法

王教授(特级教师)正在用高级方法教授数学。

王教授正在批评李同学。

王教授正在举办关于微积分的讲座。

# super()函数 除了在构造方法中使用,还可以在其他方法中使用# 定义一个父类
class Animal:def __init__(self, name, age):self.name = nameself.age = agedef speak(self):print(f"{self.name} 发出声音")class Dog(Animal):def speak(self):super().speak()  # 先调用父类的方法print("汪汪叫")    # 再添加子类的行为dog = Dog("旺财", 3)
dog.speak() 

所以重复父类的方法也包含2种
        1.直接重写:本质会优先用子类的同名方法,完全替代父类方法,父类逻辑不会执行
        2.使用super()重写,保留父类方法的核心逻辑,并在此基础上扩展

作业

题目1:定义圆(Circle)类

  1. 包含属性:半径 radius。
  2. 包含方法:

    - calculate_area():计算圆的面积(公式:πr²)。

    - calculate_circumference():计算圆的周长(公式:2πr)。

  3. 初始化时需传入半径,默认值为 1。
# 示例运行
circle = Circle(5)
print(f"半径:{circle.radius}")       # 输出:半径:5
print(f"面积:{circle.calculate_area()}")   # 输出:面积:78.54(保留两位小数)
print(f"周长:{circle.calculate_circumference()}") # 输出:周长:31.42(保留两位小数)
import math
class Circle:def __init__(self, radius=1):self.radius = radiusdef calculate_area(self):area = math.pi * self.radius ** 2return round(area, 2)def calculate_circumference(self):circumference = 2 * math.pi * self.radiusreturn round(circumference, 2)circle = Circle(5)
print(f"半径:{circle.radius}")
print(f"面积:{circle.calculate_area()}")
print(f"周长:{circle.calculate_circumference()}")

半径:5

面积:78.54

周长:31.42

题目2:定义长方形(Rectangle)类

  1. 包含属性:长 length、宽 width。
  2. 包含方法:

    - calculate_area():计算面积(公式:长×宽)。

    - calculate_perimeter():计算周长(公式:2×(长+宽))。

    - is_square() 方法,判断是否为正方形(长 == 宽)。

  3. 初始化时需传入长和宽,默认值均为 1。
rect = Rectangle(4, 6)
print(f"长:{rect.length}, 宽:{rect.width}")  # 输出:长:4, 宽:6
print(f"面积:{rect.calculate_area()}")      # 输出:面积:24
print(f"周长:{rect.calculate_perimeter()}")  # 输出:周长:20
print(f"是否为正方形:{rect.is_square()}")    # 输出:是否为正方形:Falsesquare = Rectangle(5, 5)
print(f"是否为正方形:{square.is_square()}")  # 输出:是否为正方形:True
class Rectangle:def __init__(self, length=1, width=1):self.length = lengthself.width = widthdef calculate_area(self):area = self.length * self.widthreturn areadef calculate_perimeter(self):perimeter = 2 * (self.length + self.width)return perimeterdef is_square(self):if self.length == self.width:return Trueelse:return Falserectangle = Rectangle(4, 6)
print(f"长:{rectangle.length},宽:{rectangle.width}")
print(f"面积:{rectangle.calculate_area()}")
print(f"周长:{rectangle.calculate_perimeter()}")
print(f"是否为正方形:{rectangle.is_square()}")square = Rectangle(5, 5)
print(f"是否为正方形:{square.is_square()}")

长:4,宽:6

面积:24

周长:20

是否为正方形:False

是否为正方形:True

题目3:图形工厂

创建一个工厂函数 create_shape(shape_type, *args),根据类型创建不同图形对象:图形工厂(函数或类)

shape_type="circle":创建圆(参数:半径)。

shape_type="rectangle":创建长方形(参数:长、宽)。

shape1 = create_shape("circle", 5)
print(shape1.calculate_circumference())  # 输出:31.42shape2 = create_shape("rectangle", 3, 4)
print(shape2.is_square())                # 输出:False
def create_shape(shape_type,*args):if shape_type == "circle":radius = args[0]circle = Circle(radius)return circleelif shape_type == "rectangle":length = args[0]width = args[1]rectangle = Rectangle(length, width)return rectangleshape1 = create_shape("circle", 5)
print(shape1.calculate_circumference())shape2 = create_shape("rectangle", 3, 4)
print(shape2.is_square())

31.42

False

 @浙大疏锦行

http://www.dtcms.com/wzjs/25176.html

相关文章:

  • 手机制作封面教程网站网络热词2021流行语
  • 怎么找到一个公司的网站建立网站的详细步骤
  • 成都双流网站建设在线培训课程
  • 有什么网站可以做外贸出口信息外贸推广优化公司
  • 青岛网站建设推广友情链接多少钱一个
  • 石家庄建立网站临沂seo推广
  • php网站模块修改搜索引擎优化的基本方法
  • 如何用电脑记事本做网站网络营销策划的主要特点
  • 怎样用php做网站自媒体论坛交流推荐
  • 天元建设集团有限公司成立时间如何做谷歌优化
  • 如何查网站的备案信息搭建网站基本步骤
  • 小学老师在哪个网站做ppt百度在线人工客服
  • 手机网站申请seo优化服务
  • 常州建设银行网站首页长沙建设网站制作
  • 网站ftp账号密码免费网页设计制作网站
  • 微店那样的网站怎么做网站收录软件
  • 西安网站建设总部北京seo公司公司
  • 做网站使用字体图标河南企业站seo
  • 网站建设的可行性报告研究怎么在百度做免费推广
  • 惠州网站建设制作价格网络推广优化品牌公司
  • 个人如何做微商城网站设计友情链接检测的特点
  • 校园微网站建设方案ppt模板seo做的好的网站
  • 网站开发中遇到的技术问题腾讯广告推广平台入口
  • wordpress可the7北京seo优化公司
  • 遵义做网站多少钱百度6大核心部门
  • 深圳做网站建设比较好的公司西安网络推广营销公司
  • 动感地带套餐优化大师tv版
  • 做神马网站优化排名网络营销岗位
  • 模板建站排版跟没缓存好似的景区营销案例100例
  • 怎么把自己做的网站放到网上微信营销软件排行榜