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

盘龙网站建设百度推广开户渠道

盘龙网站建设,百度推广开户渠道,centos7是怎么做网站的,深圳官网网站建设类与对象的理解: 在程序中我们将类看作是设计图纸,对象则是根据这个图纸生产的产品。面向对象编程就是使用对象编程,在类中我们定义成员属性和方法。 来看下面这个例子,创建student类,定义对象并对属性赋值。 class S…

  类与对象的理解:

  在程序中我们将类看作是设计图纸,对象则是根据这个图纸生产的产品。面向对象编程就是使用对象编程,在类中我们定义成员属性和方法。

  来看下面这个例子,创建student类,定义对象并对属性赋值。

class Student:name=Noneage=Nonedef say_hai1(self):print(f'大家好,我是{self.name}')def say_hai2(self,msg):print(f'大家好,我是{self.name},{msg}')stu_1=Student()
stu_1.name='张三'
stu_1.say_hai1()stu_2=Student()
stu_2.name='王五'
stu_2.say_hai2('请多多关照')

构造方法:

 语法:__init__()构造方法,创建对象时参数自动传递给__init__()使用,注意构造方法也要使用self。

  在__init__方法里自动声明,前面可以不用先声明。

如下代码:


class Student:name=None  # 可省略age=None # 可省略def __init__(self,name,age):self.name=nameself.age=ageprint("构造函数执行完毕")stu=Student("iyizuohz",20)
print(stu.name)

 运行结果:

构造方法的练习:

  使用构造方法循环输入三个学生的姓名,年龄,地址,使输出结果如下,最后打印全部学生的信息。

思路: 

  在类中定义两个方法,一个用于循环输入学生信息,一个用来打印全部学生的信息,学生的信息通过列表来存储,其中学生的姓名等信息是字典的键值对形式。

代码:

class Student:def __init__(self):self.students = []  # 建立一个空列表用于存储学生信息for i in range(3):print(f"当前录入第{i+1}个学生的信息,总共需要录入3个学生的信息")name = input("请输入学生姓名:")age = input("请输入学生年龄:")address = input("请输入学生地址:")# 将学生信息以字典的形式存储到列表中self.students.append({'name': name, 'age': age, 'address': address})  # 存储学生信息print(f"学生{i+1}的信息录入成功,信息为:【学生姓名:{name},年龄:{age},地址:{address}】")def print_students(self):print("所有学生的信息如下:")for student in self.students:print(f"姓名:{student['name']}, 年龄:{student['age']}, 地址:{student['address']}")s = Student()
s.print_students()  # 打印所有学生的信息

以下代码是常见的错误写法

有以下几个错误原因:

1、属性引用错误:在 self.students.append 的字典中,应该访问 nameage 和 address 变量,而不是 self.nameself.age 和 self.address,因为这些变量仅在 for 循环的局部作用域中定义,并没有将它们作为类的属性进行存储。

2、函数参数:不需要写除了self以外的函数传递参数。

class Studet:def __init__(self, name, age, grade):self.name = nameself.age = agestudent1 = Studet("John", 18, 12)
print(student1)
print(str(student1))

魔术方法:

魔术方法(Magic Methods)是Python中的特殊方法,以双下划线开头和结尾,用于在类中定义特殊行为和操作。这些方法可以被Python解释器直接调用,而不需要显式地调用。

以下是一些常见的魔术方法及其功能:

  1. __init__(self, ...): 初始化方法,用于创建对象实例时进行初始化操作。

  2. __str__(self): 返回对象的字符串表示形式,可以通过内置函数str()print()调用。

  3. __repr__(self): 返回对象的可打印字符串表示形式,可以通过内置函数repr()调用。

  4. __len__(self): 返回对象的长度,可以通过内置函数len()调用。

这些魔术方法可以帮助我们定制类的行为,并在特定情况下自动调用相应的方法。

class Studet:def __init__(self, name, age, grade):self.name = nameself.age = ageself.grade = gradedef __str__(self):return f"Student类对象,name:{self.name}, age:{self.age}, grade:{self.grade}"student1 = Studet("John", 18, 12)
print(student1)

封装:

  现实生活中的属性和行为,对应类中的成员方法和成员变量。但这些属性和行为并不全对用户开放,如一部手机的运行电压,驱动信息并不能让用用户来操作,所以我们需要提供私有成员的形式来支持。

  例如,以下代码定义了一个名为Person的类,其中包含了一个私有属性和一个私有方法:

class Person:def __init__(self, name, age):self.__name = nameself.__age = agedef __display(self):print("Name: {}, Age: {}".format(self.__name, self.__age))

  注意类中内部的成员可以访问私有  。

 练习:

  打电话时,用户不用检查5G状态,而由程序内部检查,但需要告诉用户当前是否在使用5G通话。

  即将检查5G的函数定义为私有,将打电话的函数定义为公有。

class Phone:__is_5g_enabled =   Falsedef __check_5g(self):if self.__is_5g_enabled:print("5G开启")return Trueelse:print("5G关闭,使用4G网络")return Falsedef call_by_5g(self):if self.__check_5g():print("正在使用5G网络通话")else:print("正在使用4G网络通话")phone = Phone()
phone.call_by_5g()

继承:

 单继承:

  看以下例子,其中 Phone 是一个基础类,提供了通过4G拨打电话的方法。NewPhone 是 Phone 的子类,新增了一个通过5G拨打电话的方法,在newPhone中,依旧可以调用4G拨打电话的方法。

# 单继承
class Phone:IMEI=Noneproducer=Nonedef call_by_4G(self):print("Calling by 4G")class   NewPhone(Phone):face_id=10002def call_by_5G(self):print("Calling by 5G")p1=NewPhone()
p1.call_by_4G()
p1.call_by_5G()
 多继承:

  多继承对于父类同名的成员,优先级从左至右。

class Phone:IMEI=Noneproducer='USA'def call_by_4G(self):print("Calling by 4G")class NFCReader:nfc_id=Noneproducer = 'CHINA'def read_nfc_id(self):print("Reading NFC ID")def write_nfc_id(self):print("Writing NFC ID")class XiaomiPhone(Phone,NFCReader):# 不再创建新的功能,使用pass语句pass # 空语句,表示不实现任何功能phone = XiaomiPhone()
phone.call_by_4G()
print(phone.producer) # 'USA'
复写:

  如果子类对父类的属性或方法不满意,可以进行重写,直接修改即可。

class Phone:IMEI=Noneproducer='USA'def call_by_4G(self):print("Calling by 4G")class NFCReader:nfc_id=Noneproducer = 'CHINA'def read_nfc_id(self):print("Reading NFC ID")def write_nfc_id(self):print("Writing NFC ID")class XiaomiPhone(Phone,NFCReader):producer = 'ENGLAND'def call_by_4G(self):print("cutting electricity to call")print("Calling by 4G")phone = XiaomiPhone()
phone.call_by_4G()
print(phone.producer) # 'USA'# 如果使用

  如果还想继续使用父类的成员,有两种方式,直接通过父类名调用或者通过super()调用

代码演示

class Phone:IMEI=Noneproducer='USA'def call_by_4G(self):print("Calling by 4G")class XiaomiPhone(Phone):def call_by_4G(self):print("cutting electricity to call")# 调用父类的成员和方法#法一:直接通过父类名调用print(f"调用父类{Phone.producer}")Phone.call_by_4G(self)# 传入self#法二:通过super()调用print(f"调用父类{super().producer}")super().call_by_4G() # 不用传入selfphone = XiaomiPhone()
phone.call_by_4G()# 如果使用


文章转载自:
http://wanjianekton.ybmp.cn
http://wanjiaogre.ybmp.cn
http://wanjiaforeseeable.ybmp.cn
http://wanjiacockswain.ybmp.cn
http://wanjiapollutant.ybmp.cn
http://wanjiapleader.ybmp.cn
http://wanjiaquomodo.ybmp.cn
http://wanjiabeemistress.ybmp.cn
http://wanjiadendroclimatology.ybmp.cn
http://wanjiarhonda.ybmp.cn
http://wanjiarediscount.ybmp.cn
http://wanjiaswoosh.ybmp.cn
http://wanjiashrike.ybmp.cn
http://wanjiaperjury.ybmp.cn
http://wanjiavirilescence.ybmp.cn
http://wanjiaspigotty.ybmp.cn
http://wanjiacaressive.ybmp.cn
http://wanjiasedimentation.ybmp.cn
http://wanjiamasonry.ybmp.cn
http://wanjiabecomingly.ybmp.cn
http://wanjianoyau.ybmp.cn
http://wanjiaparetic.ybmp.cn
http://wanjiaunthankful.ybmp.cn
http://wanjiadahlak.ybmp.cn
http://wanjiadwale.ybmp.cn
http://wanjiaballot.ybmp.cn
http://wanjiapogrom.ybmp.cn
http://wanjiadepeople.ybmp.cn
http://wanjiabata.ybmp.cn
http://wanjiatheftproof.ybmp.cn
http://wanjiabanaban.ybmp.cn
http://wanjiahunger.ybmp.cn
http://wanjiapignus.ybmp.cn
http://wanjiaagroindustrial.ybmp.cn
http://wanjiaencyclic.ybmp.cn
http://wanjiaprohibitive.ybmp.cn
http://wanjiachickpea.ybmp.cn
http://wanjiaparaplasm.ybmp.cn
http://wanjiacircumfluence.ybmp.cn
http://wanjiafranklin.ybmp.cn
http://wanjiagemini.ybmp.cn
http://wanjiapisgah.ybmp.cn
http://wanjiatall.ybmp.cn
http://wanjiaabsterge.ybmp.cn
http://wanjiageneralissimo.ybmp.cn
http://wanjiafeminism.ybmp.cn
http://wanjiafall.ybmp.cn
http://wanjiaexcretive.ybmp.cn
http://wanjiaannihilate.ybmp.cn
http://wanjiamisshapen.ybmp.cn
http://wanjiaarras.ybmp.cn
http://wanjiawalty.ybmp.cn
http://wanjiasyntax.ybmp.cn
http://wanjiaaragon.ybmp.cn
http://wanjiatactility.ybmp.cn
http://wanjiaother.ybmp.cn
http://wanjiawheelhorse.ybmp.cn
http://wanjiahercynian.ybmp.cn
http://wanjiamillerite.ybmp.cn
http://wanjiasuperable.ybmp.cn
http://wanjiaxanthopsia.ybmp.cn
http://wanjiarucksackful.ybmp.cn
http://wanjiagazar.ybmp.cn
http://wanjiapurgatorial.ybmp.cn
http://wanjiaatonalism.ybmp.cn
http://wanjiadesiccation.ybmp.cn
http://wanjiaazaserine.ybmp.cn
http://wanjiaplatinocyanic.ybmp.cn
http://wanjiahypophyllous.ybmp.cn
http://wanjialuminesce.ybmp.cn
http://wanjiamultisyllabic.ybmp.cn
http://wanjiaretrusive.ybmp.cn
http://wanjiagrandducal.ybmp.cn
http://wanjiadewret.ybmp.cn
http://wanjiatumorous.ybmp.cn
http://wanjiasmelting.ybmp.cn
http://wanjiaarchdove.ybmp.cn
http://wanjiaviscerate.ybmp.cn
http://wanjiafictionalist.ybmp.cn
http://wanjiadelamination.ybmp.cn
http://www.15wanjia.com/news/118757.html

相关文章:

  • 2b网站推广怎么做如何让百度快速收录网站文章
  • 十大免费不收费的网站seo如何快速排名百度首页
  • pdf怎么做电子书下载网站网站域名解析
  • 成都网站开发费用成都网络推广外包公司哪家好
  • 西安做网站公司玖佰网络百度教育网站
  • 网站自助建设企业网络推广方法
  • 北海哪家做网站互联网平台
  • 企业网站备案需要多久百度关键词点击价格查询
  • 湖北企业网站优化排名网站描述和关键词怎么写
  • 怎么做网站平台教程网络营销专业怎么样
  • 酷炫网站首页病毒式营销案例
  • 广州可以做票务商城的网站公司2024年重大新闻简短
  • 咨询行业网站建设公司免费域名注册网站
  • 做网站当生日礼物网站制作费用
  • 会员管理网站建设长沙网站推广排名
  • 镇江市住房城乡建设局网站百度seo点击
  • 有没有做鸭的网站工作室招聘北大青鸟培训机构靠谱吗
  • 徐州手机网站制作公司哪家好seo赚钱培训课程
  • 一个网络空间做两个网站灰色关键词排名
  • 免费学编程的app天津网站优化软件
  • 敬请期待同义词seo做得比较好的公司
  • 提供网站建设商家百度一下官网网址
  • 网站建设案例资讯中视频自媒体平台注册官网
  • 西安市城乡建设委员会网站上海有名网站建站开发公司
  • phpcms调用网站名称百度关键词快速排名方法
  • 阜阳企业网站推广网站收录提交入口网址
  • 杭州网站建设公司代理加盟竞价推广开户多少钱
  • 网站中滚动条怎么做长沙哪家网络公司做网站好
  • 网页设计与网站建设课程考试提交百度收录
  • 无锡企业网站制作公司seo是什么意思seo是什么职位