python 实例方法、静态方法@staticmethod、类方法@classmethod
有勇气的牛排
540
Python
2022-12-24 14:50:37
哈喽,大家好,我是有勇气的牛排(全网同名)🐮🐮🐮
有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。
文章目录
前言
在 Python类中有3个常用方法:
- 实例方法(self)
- 静态方法:@staticmethod
- 类方法:@classmethod
1、实例方法(self)
实例方法中def所定义的内容,我们称之为方法,而不是函数,默认会在方法中添加self,self是类本身的实例对象。
2、静态方法(staticmethod)
定义:无法访问类或对象的数据,可以用作逻辑处理,即在类里面实现一个函数,并不需要去加self。
3 类方法
- 可以设置修改类属性,也可以实例化对象。
- cls 代表外层类本身,可以实例化,也可以直接调用静态方法、类方法、静态变量
4 实战
class User:
def __init__(self):
self.id = 1
self.name = "有勇气的牛排"
"""
实例方法
"""
def get_user_info(self):
return f"id: {self.id} 昵称:{self.name}"
"""
@classmethod: 类方法
可以设置修改类属性;也可以实例化对象
cls 代表外层类本身,可以实例化,也可以直接调用静态方法、类方法、静态变量
"""
@classmethod
def get_hobby(cls, hobby):
return f"你的爱好是:{hobby}"
"""
@staticmethod: 静态方法
无法访问类或对象的数据,可以用作逻辑处理
"""
@staticmethod
def get_url(url):
return url
get_user_info = User().get_user_info()
print(get_user_info)
get_hobby = User.get_hobby("看书")
print(get_hobby)
get_url = User.get_url("www.couragesteak.com")
print(get_url)

<p><font face="楷体,华文行楷,隶书,黑体" color="red" size="4"><strong>哈喽,大家好,我是有勇气的牛排(全网同名)🐮🐮🐮</strong></font></p>
<p><font face="楷体,华文行楷,隶书,黑体" color="blue" size="4"><strong>有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。</strong></font></p>
<p><h3>文章目录</h3><ul><ul><li><a href="#_6">前言</a></li><li><a href="#1self_14">1、实例方法(self)</a></li><li><a href="#2staticmethod_18">2、静态方法(staticmethod)</a></li><li><a href="#3__23">3 类方法</a></li><li><a href="#4__29">4 实战</a></li></ul></ul></p>
<h2><a id="_6"></a>前言</h2>
<p>在 Python类中有3个常用方法:</p>
<ul>
<li>实例方法(self)</li>
<li>静态方法:@staticmethod</li>
<li>类方法:@classmethod</li>
</ul>
<h2><a id="1self_14"></a>1、实例方法(self)</h2>
<p>实例方法中def所定义的内容,我们称之为方法,而不是函数,默认会在方法中添加self,self是类本身的实例对象。</p>
<h2><a id="2staticmethod_18"></a>2、静态方法(staticmethod)</h2>
<p>定义:无法访问类或对象的数据,可以用作逻辑处理,即在类里面实现一个函数,并不需要去加self。</p>
<h2><a id="3__23"></a>3 类方法</h2>
<ul>
<li>可以设置修改类属性,也可以实例化对象。</li>
<li>cls 代表外层类本身,可以实例化,也可以直接调用静态方法、类方法、静态变量</li>
</ul>
<h2><a id="4__29"></a>4 实战</h2>
<pre><div class="hljs"><code class="lang-python"><span class="hljs-keyword">class</span> <span class="hljs-title class_">User</span>:
<span class="hljs-keyword">def</span> <span class="hljs-title function_">__init__</span>(<span class="hljs-params">self</span>):
self.<span class="hljs-built_in">id</span> = <span class="hljs-number">1</span>
self.name = <span class="hljs-string">"有勇气的牛排"</span>
<span class="hljs-string">"""
实例方法
"""</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">get_user_info</span>(<span class="hljs-params">self</span>):
<span class="hljs-keyword">return</span> <span class="hljs-string">f"id: <span class="hljs-subst">{self.<span class="hljs-built_in">id</span>}</span> 昵称:<span class="hljs-subst">{self.name}</span>"</span>
<span class="hljs-string">"""
@classmethod: 类方法
可以设置修改类属性;也可以实例化对象
cls 代表外层类本身,可以实例化,也可以直接调用静态方法、类方法、静态变量
"""</span>
<span class="hljs-meta"> @classmethod</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">get_hobby</span>(<span class="hljs-params">cls, hobby</span>):
<span class="hljs-keyword">return</span> <span class="hljs-string">f"你的爱好是:<span class="hljs-subst">{hobby}</span>"</span>
<span class="hljs-string">"""
@staticmethod: 静态方法
无法访问类或对象的数据,可以用作逻辑处理
"""</span>
<span class="hljs-meta"> @staticmethod</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">get_url</span>(<span class="hljs-params">url</span>):
<span class="hljs-keyword">return</span> url
get_user_info = User().get_user_info()
<span class="hljs-built_in">print</span>(get_user_info)
get_hobby = User.get_hobby(<span class="hljs-string">"看书"</span>)
<span class="hljs-built_in">print</span>(get_hobby)
get_url = User.get_url(<span class="hljs-string">"www.couragesteak.com"</span>)
<span class="hljs-built_in">print</span>(get_url)
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/e283847005d8ae177546b0a4cf614525.png" alt="image.png" /></p>
留言