我知道这是一个菜鸟问题,但是我正在学习OOP,无法计算出得到的结果
这是我找到的代码,我可以知道它如何运行吗?
<?php
global $wpdb;
$table_name = $wpdb->prefix."sheet1";
$sql = "SELECT * FROM ".$table_name." WHERE Course ='Filipino' ORDER BY Lastname";
$results = $wpdb->get_results($sql);
?>
<!-- Data should be appear in this table-->
<table id="passers_table">
<thead>
<tr>
<th><center>Course</center></th>
<th><center>Student Number</center></th>
<th><center>Name</center></th>
<th><center>LinkedIn Account</center></th>
<th><center>Email Address</center></th>
<th><center>Nationality</center></th>
<th><center>City</center></th>
<th><center>Country</center></th>
</tr>
</thead>
<tbody>
<tr>
<?php
foreach($results as $print){
?>
<td><?php echo $print->Course;?></td><br>
<td><?php echo $print->Studno;?></td><br>
<td><?php echo $print->Title.' '.$print->Firstname.' '.$print->Lastname;?></td><br>
<td style="font-style: italic;"><center>PRIVATE</center></td><br>
<td><center><a href="<?php echo $print->Linkedin;?>" target="_blank" rel="noopener
noreferrer"><u>Click Here</u></a></center></td><br>
<td style="font-style: italic;"><center>PRIVATE</center></td><br>
<td><center><?php echo $print->Email;?></center></td><br>
<td><?php echo $print->Nationality;?></td><br>
<td><?php echo $print->City;?></td><br>
<td><?php echo $print->Country;?></td>
<?php } ?>
</tr>
</tbody>
</table>
答案 0 :(得分:3)
您有一个名为InstanceCounter
的类,该类继承自object
。如果使用object
,则Python3
的继承可以是removed。此类具有属性count
和value
以及一些methods
(函数-例如set_val
)。
现在,您将创建类的三个对象,并将这些值传递到构造函数中,并将value
的值设置为5
,10
和15
。您还应在每次构造函数调用时将 static 属性(请参见here)count
加1。静态属性与符号Class.Attribute
一起使用。
在最后一步中,您遍历三个对象的列表((a, b, c)
)并将此对象的每个存储在对象obj
中,因此obj
将代表{{1} },然后依次为a
和b
。因此,您可以调用此对象的方法,因为对象c
的类型为obj
,因此InstanceCounter
包含相同的方法和属性。
通过我对您的代码进行重新整理的方式,使它更易于理解并使用obj
语法。
Python3
这将导致以下输出:
class InstanceCounter:
count = 0
def __init__(self, val):
self.val = val
InstanceCounter.count += 1
def set_val(self, newval):
self.val = newval
def get_val(self):
return self.val
def get_count(self):
return InstanceCounter.count
a = InstanceCounter(5)
print("Count : {}".format(a.get_count()))
b = InstanceCounter(10)
print("Count : {}".format(b.get_count()))
c = InstanceCounter(15)
print("Count : {}".format(c.get_count()))
for obj in (a, b, c):
print("value of obj: {}".format(obj.get_val()))
print("Count : {}".format(obj.get_count()))
为了更好地理解静态属性:
因此,如果您有三个类型为Count : 1
Count : 2
Count : 3
value of obj: 5
Count : 3
value of obj: 10
Count : 3
value of obj: 15
Count : 3
的对象,则您拥有名称为InstanceCounter
的三个不同属性,因为类型为val
的每个对象都包含一个属性{{ 1}}-一个InstanceCounter
和一个相同的属性,名称为val
-一个instance attribute
。
count
是类class attribute
的{{1}}。这个
属性对于所有类型的对象具有相同的值
count
。与class attribute
一起使用-例如InstanceCounter
。InstanceCounter
是Classname.Attributename
,因为类InstanceCounter.count
的每个 instance 都有自己的价值。与val
一起使用-例如instance attribute
。有关更多信息,请参见here。