当前位置:   article > 正文

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(Python面向对象的编程)_深度学习中的class阅读

深度学习中的class阅读

面向对象的程序设计(OOP)

对象(object): 将属性和方 法封装在一起。

类(class):

具有相同的属性和方法的对象集合。

对象是类的实例

类继承了父类的全部属性和方法, 并且也有自己特有的属性和方法。

继承描述了类之间的层次关系

声明类

class 类名:

    类属性=初值

    方法(参数列表)

访问类属性

类名. 类属性

对象名.类属性

  1. #类
  2. class Person():
  3. #成员变量 类属性
  4. money=100000
  5. #成员函数 类方法
  6. def say_hello(self):#方法中必须有一个参数self,而且它是参数列表中的第一个参数
  7. #由同一个类可以生成很多个对象,每一个对象,都有一个专属的self,代表这个对象自身
  8. print("hello")
  9. #创建对象
  10. zhangsan = Person()
  11. #访问对象类属性成员变量
  12. print(zhangsan.money)
  13. #这是一个动态添加的实例属性,它只属于zhangsan自己,如果重新创建其他的Person()对象,是没有这个属性的
  14. zhangsan.major="computer"
  15. print(zhangsan.major)
  16. #访问类属性成员函数
  17. zhangsan.say_hello()
  18. Person.money=12#修改类属性,所有实例的值都会发生变化。
  19. #删除对象
  20. del zhangsan

构造函数:

(可以省略)

__init__(self, 参数2, 参数3, ....)

在创建对象时,用来完成初始化操作。

当创建对象时,系统会自动调用构造函数。

可以把对成员变量赋初值的语句写在构造函数中,从而保证每个变量 都有合适的初始值

析构函数:

(可以省略)

__del__( )

在清除对象时,回收和释放对象所占用的资源。

  1. class Person:
  2. #在Python中,构造函数和析构函数也可以省略。
  3. #构造函数:在创建对象时,用来完成初始化操作。
  4. #当创建对象时,系统会自动调用构造函数。
  5. #gender="男"默认初值
  6. def __init__(self,name,age,gender="男"):
  7. self.name=name
  8. self.age=age
  9. self.gender=gender
  10. #析构函数:在清除对象时,回收和释放对象所占用的资源
  11. def __del__(self):
  12. print("Bye bye from",self.name)
  13. def printInfo(self):
  14. print("姓名:",self.name,"年龄:",self.age,"性别:",self.gender)
  15. zhangsan = Person("张三",18)
  16. lisi = Person("李四",19,"女")
  17. zhangsan.printInfo()
  18. lisi.printInfo
  19. del zhangsan
  20. del lisi

静态方法和类方法

类方法

可以通过类名或者对象调用。

不能访问实例属性,但可以访问类属性(类声明时就有的)

class 类名:

    @classmethod

    def 类方法名(cls,):

        方法体

静态方法

可以通过类名或者对象名调用,

不能访问实力属性,也不能直接访问类属性,但是可以通过类名引用类属性

class 类名:

    @staticmethod

    def 类方法名():

        方法体

公有变量和私有变量

公有变量:可以在类的外部访问

保护变量:值允许其本身和子类进行访问

私有变量:不允许在类的外部访问

__XXX:私有变量

_XXX:保护变量

__XXX__:专有变量,方法

继承:

子类能够继承父类中所有非私有的成员变量和成员函数

class 子类名(父类名)

    类属性=初值

    方法(参数列表)

  1. class Person1():
  2. money=10000
  3. def syahello(self):
  4. print("hello1234567")
  5. class Teacher(Person1):
  6. pass
  7. amy = Teacher()
  8. print(amy.money)
  9. amy.syahello()

面向过程的程序设计(POP)

个人公众号

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/345405
推荐阅读
相关标签
  

闽ICP备14008679号