首页 > 分享 > Python讲堂 关于类Class的使用说明

Python讲堂 关于类Class的使用说明

class ClassName(bases):  # bases是基类或者父类
   data = value  # 定义数据属性,类创建时候就有  # 类属性,类创建时候就有,各个实例都可使用
   def method(self, ...):  # 定义方法属性, 注意此处第一个参数是self
      self.member = value  # 实例属性,只被个别的实例所使用

____________________

数据属性 , 类属性  可以通过加self被调用:

例如:

class FirstClass():
          spam = 30:
           def dispaly(self):
                   print( self.spam )

____________________

https://blog.csdn.net/qq_42242750/article/details/80515440

先实例化类x = MyClass()  ,调用类里面的方法属性 x.f()

class MyClass:
    """一个简单的类实例"""
    i = 12345
    def     f  (self):
        return 'hello world'

# 实例化类
x = MyClass() 

# 访问类的属性和方法
print("MyClass 类的属性 i 为:", x.i )
print("MyClass 类的方法 f 输出为:", x.f() )

______________________

方法属性里面用到了类属性要加self

>>> class Myclass:
...     data = 123
...     def f(self):
...             print( self.data )  # 用的前面的data数据属性,所以需要self.data
...
>>> x= Myclass()
>>> x.data
123
>>> x.f()  # 方法被调用,需要加()
123
>>>

______________________

类的内部定义:

>>> class Seconclass:
...     data = 'hello secondclass'
...     def setdata(self,x):  # 设置实例内部数据 参数,不同的类实例设置的参数不一样
...             self.str1 = x   # str1是实例属性
...     def printdata(self):
...             print(self.str1)
...
>>> ins = Seconclass()
>>> ins.data
'hello secondclass'
>>> ins.setdata('abcd')
>>> ins.printdata()
abcd
>>> ins2 = Seconclass()
>>> ins2.data
'hello secondclass'
>>> ins2.setdata('xyz')
>>> ins2.printdata()
xyz

在这里 实例 调用类内方法(instance.method)等价与 类(实例, 'xyz' )

ins2.setdata('xyz') = Seconclass( ins2 ,  'xyz' )

______________________

构造器 __init__ 在实例化过程直接把参数传递进去

>>> class MyClass():
...     data = 'hello world'
...     def __init__(self,x):
...             self.str1 = x
...
>>> i = MyClass('abcd')  # 通过构造器, 实例化过程直接把参数传递进去
>>> i.data
'hello world'
>>> i.str1
'abcd'

______________________

>>> class animal:
...     name = 'someone'
...     def __init__(self, voice = 'hi'):
...             self.voice = voice
...     def say(self):
...             print(self.voice)
...
>>> tom = animal()
>>> tom.say()
hi

>>> jerry = animal('hello') # 通过构造器, 实例化过程直接把参数传递进去
>>> jerry.say()
hello

>>> class Animal:
...     name = 'someone'  # 类变量 静态变量
...     def __init__(self, voice = 'hi'):
...             self.voice = voice  # 实例变量
...     def saySomthing(self):
...             x= 4    #方法内,称作局部变量
...             print(self.voice)
...
>>> tom = Animal()  
>>> tom.saySomthing()
hi

对类中类变量更改,会直接导致实例的类变量的改变

>>> animal.name = 'zjc'
>>> tom.name
'zjc'
>>> jerry.name
'zjc'

相关知识

Python讲堂 关于类Class的使用说明
Python笔试题
python之面向对象
Python面向对象高级编程——多重继承
Python———面向对象编程
python定义一个dog类 类属性有名字
Python期末作业
python做桌面宠物
案例驱动式Python学习笔记【第六篇】电子宠物
【面向对象学习笔记day03】面向对象基础语法+内置函数+定义简单的类+创建对象+第一个面向对象程序+使用 Cat 类再创建一个对象+方法中的self参数+初始化方法+内置方法和属性+del+str

网址: Python讲堂 关于类Class的使用说明 https://m.mcbbbk.com/newsview316549.html

所属分类:萌宠日常
上一篇: 松狮犬,养的人很少,理由有5个!
下一篇: 动物医学考编全攻略